python十進(jìn)制轉(zhuǎn)二進(jìn)制的詳解
python十進(jìn)制轉(zhuǎn)二進(jìn)制
python中十進(jìn)制轉(zhuǎn)二進(jìn)制使用 bin() 函數(shù)。
bin() 返回一個(gè)整數(shù) int 或者長(zhǎng)整數(shù) long int 的二進(jìn)制表示。
下面是使用示例:
>>>bin(10) '0b1010' >>> bin(20) '0b10100'
補(bǔ)充:十進(jìn)制轉(zhuǎn)8進(jìn)制和16進(jìn)制的方法:
# -*- coding: UTF-8 -*-
# 獲取用戶(hù)輸入十進(jìn)制數(shù)
dec = int(input("輸入數(shù)字:"))
print("轉(zhuǎn)換為八進(jìn)制為:", oct(dec))
print("轉(zhuǎn)換為十六進(jìn)制為:", hex(dec))
內(nèi)容擴(kuò)展:
#-*- coding: utf-8
from decimal import Decimal
def bTod(n, pre=4):
'''
把一個(gè)帶小數(shù)的二進(jìn)制數(shù)n轉(zhuǎn)換成十進(jìn)制
小數(shù)點(diǎn)后面保留pre位小數(shù)
'''
string_number1 = str(n) #number1 表示二進(jìn)制數(shù),number2表示十進(jìn)制數(shù)
decimal = 0 #小數(shù)部分化成二進(jìn)制后的值
flag = False
for i in string_number1: #判斷是否含小數(shù)部分
if i == '.':
flag = True
break
if flag: #若二進(jìn)制數(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ù)部分化成二進(jìn)制
number2 = int(str(int(string_integer, 2))) + decimal
return round(number2, pre)
else: #若二進(jìn)制數(shù)只有整數(shù)部分
return int(string_number1, 2)#若只有整數(shù)部分 直接一行代碼二進(jìn)制轉(zhuǎn)十進(jìn)制 python還是騷
def dTob(n, pre=4):
'''
把一個(gè)帶小數(shù)的十進(jìn)制數(shù)n轉(zhuǎn)換成二進(jìn)制
小數(shù)點(diǎn)后面保留pre位小數(shù)
'''
string_number1 = str(n) #number1 表示十進(jìn)制數(shù),number2表示二進(jìn)制數(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)換成二進(jì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: #若十進(jìn)制只有整數(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)
以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
關(guān)于TensorBoard可視化不顯示數(shù)據(jù)問(wèn)題No scalar data was&nbs
這篇文章主要介紹了如何解決TensorBoard可視化不顯示數(shù)據(jù)問(wèn)題No scalar data was found,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Python正則表達(dá)式實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能示例
這篇文章主要介紹了Python正則表達(dá)式實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能,涉及Python正則判定及數(shù)值計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
Python中的隨機(jī)森林算法與實(shí)戰(zhàn)
本文詳細(xì)介紹了隨機(jī)森林算法,包括其原理、實(shí)現(xiàn)步驟、分類(lèi)和回歸案例,并討論了其優(yōu)點(diǎn)和缺點(diǎn),通過(guò)面向?qū)ο缶幊虒?shí)現(xiàn)了一個(gè)簡(jiǎn)單的隨機(jī)森林模型,并應(yīng)用于鳶尾花分類(lèi)和波士頓房?jī)r(jià)預(yù)測(cè)2025-01-01
Django獲取該數(shù)據(jù)的上一條和下一條方法
今天小編就為大家分享一篇Django獲取該數(shù)據(jù)的上一條和下一條方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
python 時(shí)間的訪問(wèn)和轉(zhuǎn)換 time示例小結(jié)
Python 的 time 模塊提供了各種與時(shí)間處理相關(guān)的功能,包括獲取當(dāng)前時(shí)間、操作日期/時(shí)間以及執(zhí)行與時(shí)間相關(guān)的各種其它功能,這篇文章主要介紹了python 時(shí)間的訪問(wèn)和轉(zhuǎn)換 time,需要的朋友可以參考下2024-05-05

