python十進制轉(zhuǎn)二進制的詳解
更新時間:2020年02月07日 08:46:39 作者:V
在本篇文章里小編給大家整理了關于python十進制轉(zhuǎn)二進制的相關知識點內(nèi)容,需要的朋友們可以參考學習下。
python十進制轉(zhuǎn)二進制
python中十進制轉(zhuǎn)二進制使用 bin() 函數(shù)。
bin() 返回一個整數(shù) int 或者長整數(shù) long int 的二進制表示。
下面是使用示例:
>>>bin(10) '0b1010' >>> bin(20) '0b10100'
補充:十進制轉(zhuǎn)8進制和16進制的方法:
# -*- coding: UTF-8 -*-
# 獲取用戶輸入十進制數(shù)
dec = int(input("輸入數(shù)字:"))
print("轉(zhuǎn)換為八進制為:", oct(dec))
print("轉(zhuǎn)換為十六進制為:", hex(dec))
內(nèi)容擴展:
#-*- coding: utf-8
from decimal import Decimal
def bTod(n, pre=4):
'''
把一個帶小數(shù)的二進制數(shù)n轉(zhuǎn)換成十進制
小數(shù)點后面保留pre位小數(shù)
'''
string_number1 = str(n) #number1 表示二進制數(shù),number2表示十進制數(shù)
decimal = 0 #小數(shù)部分化成二進制后的值
flag = False
for i in string_number1: #判斷是否含小數(shù)部分
if i == '.':
flag = True
break
if flag: #若二進制數(shù)含有小數(shù)部分
string_integer, string_decimal = string_number1.split('.') #分離整數(shù)部分和小數(shù)部分
for i in range(len(string_decimal)):
decimal += 2**(-i-1)*int(string_decimal[i]) #小數(shù)部分化成二進制
number2 = int(str(int(string_integer, 2))) + decimal
return round(number2, pre)
else: #若二進制數(shù)只有整數(shù)部分
return int(string_number1, 2)#若只有整數(shù)部分 直接一行代碼二進制轉(zhuǎn)十進制 python還是騷
def dTob(n, pre=4):
'''
把一個帶小數(shù)的十進制數(shù)n轉(zhuǎn)換成二進制
小數(shù)點后面保留pre位小數(shù)
'''
string_number1 = str(n) #number1 表示十進制數(shù),number2表示二進制數(shù)
flag = False
for i in string_number1: #判斷是否含小數(shù)部分
if i == '.':
flag = True
break
if flag:
string_integer, string_decimal = string_number1.split('.') #分離整數(shù)部分和小數(shù)部分
integer = int(string_integer)
decimal = Decimal(str(n)) - integer
l1 = [0,1]
l2 = []
decimal_convert = ""
while True:
if integer == 0: break
x,y = divmod(integer, 2) #x為商,y為余數(shù)
l2.append(y)
integer = x
string_integer = ''.join([str(j) for j in l2[::-1]]) #整數(shù)部分轉(zhuǎn)換成二進制
i = 0
while decimal != 0 and i < pre:
result = int(decimal * 2)
decimal = decimal * 2 - result
decimal_convert = decimal_convert + str(result)
i = i + 1
string_number2 = string_integer + '.' + decimal_convert
return float(string_number2)
else: #若十進制只有整數(shù)部分
l1 = [0,1]
l2 = []
while True:
if n == 0: break
x,y = divmod(n, 2) #x為商,y為余數(shù)
l2.append(y)
n = x
string_number = ''.join([str(j) for j in l2[::-1]])
return int(string_number)
以上就是本次介紹的全部相關知識點,感謝大家的學習和對腳本之家的支持。
相關文章
python將matplotlib嵌入到tkinter中的步驟詳解
tkinter是Python標準庫中自帶的GUI工具,使用十分方便,如能將matplotlib嵌入到tkinter中,就可以做出相對專業(yè)的數(shù)據(jù)展示系統(tǒng),很有競爭力,本文就給大家介紹python將matplotlib嵌入到tkinter中的方法步驟,需要的朋友可以參考下2023-08-08
2020最新pycharm漢化安裝(python工程獅親測有效)
這篇文章主要介紹了2020最新pycharm漢化安裝(python工程獅親測有效),文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
python中numpy.zeros(np.zeros)的使用方法
下面小編就為大家?guī)硪黄猵ython中numpy.zeros(np.zeros)的使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
python神經(jīng)網(wǎng)絡使用tensorflow構建長短時記憶LSTM
這篇文章主要為大家介紹了python機器學習tensorflow構建長短時記憶網(wǎng)絡LSTM,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

