python十進制轉二進制的詳解
更新時間:2020年02月07日 08:46:39 作者:V
在本篇文章里小編給大家整理了關于python十進制轉二進制的相關知識點內(nèi)容,需要的朋友們可以參考學習下。
python十進制轉二進制
python中十進制轉二進制使用 bin() 函數(shù)。
bin() 返回一個整數(shù) int 或者長整數(shù) long int 的二進制表示。
下面是使用示例:
>>>bin(10) '0b1010' >>> bin(20) '0b10100'
補充:十進制轉8進制和16進制的方法:
# -*- coding: UTF-8 -*-
# 獲取用戶輸入十進制數(shù)
dec = int(input("輸入數(shù)字:"))
print("轉換為八進制為:", oct(dec))
print("轉換為十六進制為:", hex(dec))
內(nèi)容擴展:
#-*- coding: utf-8
from decimal import Decimal
def bTod(n, pre=4):
'''
把一個帶小數(shù)的二進制數(shù)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ù)部分 直接一行代碼二進制轉十進制 python還是騷
def dTob(n, pre=4):
'''
把一個帶小數(shù)的十進制數(shù)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ù)部分轉換成二進制
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)
以上就是本次介紹的全部相關知識點,感謝大家的學習和對腳本之家的支持。
相關文章
關于TensorBoard可視化不顯示數(shù)據(jù)問題No scalar data was&nbs
這篇文章主要介紹了如何解決TensorBoard可視化不顯示數(shù)據(jù)問題No scalar data was found,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Django獲取該數(shù)據(jù)的上一條和下一條方法
今天小編就為大家分享一篇Django獲取該數(shù)據(jù)的上一條和下一條方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08

