国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 大宁县| 庆云县| 新泰市| 旬邑县| 饶河县| 马尔康县| 阳泉市| 温宿县| 龙游县| 泾源县| 繁昌县| 贺兰县| 定襄县| 武威市| 山东省| 湘潭县| 邵武市| 大石桥市| 龙游县| 邹城市| 女性| 鄢陵县| 中宁县| 宁强县| 东乌珠穆沁旗| 平阴县| 齐河县| 方正县| 绥化市| 连江县| 河南省| 桓仁| 安塞县| 新丰县| 大埔县| 巫溪县| 上虞市| 广德县| 榆树市| 神木县| 西林县|