国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python十進(jìn)制轉(zhuǎn)二進(jìn)制的詳解

2020-02-15 21:21:06
字體:
供稿:網(wǎng)友

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 -*- # 獲取用戶輸入十進(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-8from decimal import Decimaldef 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)            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 特克斯县| 苏尼特左旗| 阳泉市| 凤冈县| 繁昌县| 高雄市| 个旧市| 北流市| 阿图什市| 海南省| 山阴县| 遂宁市| 呈贡县| 农安县| 南宫市| 周至县| 个旧市| 平谷区| 太仆寺旗| 宽甸| 禹州市| 津南区| 胶南市| 阿拉善左旗| 顺平县| 修武县| 蒲江县| 都江堰市| 广南县| 竹山县| 德化县| 扬州市| 宣化县| 新野县| 苏尼特右旗| 连山| 元氏县| 宿迁市| 乌拉特后旗| 文登市| 宜州市|