成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python十進(jìn)制和二進(jìn)制的轉(zhuǎn)換方法(含浮點數(shù))-創(chuàng)新互聯(lián)

本文介紹了python十進(jìn)制和二進(jìn)制的轉(zhuǎn)換方法(含浮點數(shù)),分享給大家,也給自己留個筆記,具體如下:

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的法庫網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

我終于寫完了 , 十進(jìn)制轉(zhuǎn)二進(jìn)制的小數(shù)部分卡了我將近一個小時


上代碼


#-*- coding: utf-8
from decimal import Decimal
def bTod(n, pre=4):
  '''
  把一個帶小數(shù)的二進(jìn)制數(shù)n轉(zhuǎn)換成十進(jìn)制
  小數(shù)點后面保留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):
  '''
  把一個帶小數(shù)的十進(jìn)制數(shù)n轉(zhuǎn)換成二進(jìn)制
  小數(shù)點后面保留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)

分享題目:python十進(jìn)制和二進(jìn)制的轉(zhuǎn)換方法(含浮點數(shù))-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article16/cshodg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)App設(shè)計、ChatGPT全網(wǎng)營銷推廣、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
阿鲁科尔沁旗| 宁波市| 壶关县| 甘谷县| 绥宁县| 剑河县| 稻城县| 沁阳市| 扬州市| 长治市| 大姚县| 东至县| 乌苏市| 郸城县| 朝阳市| 曲麻莱县| 成都市| 正镶白旗| 泗水县| 万盛区| 玛纳斯县| 微山县| 察隅县| 鄄城县| 阿坝县| 天津市| 阿鲁科尔沁旗| 淄博市| 延津县| 年辖:市辖区| 南乐县| 洛宁县| 青神县| 潜江市| 衡阳市| 余干县| 夏邑县| 光山县| 鹤山市| 杨浦区| 九台市|