python十進制和二進制的轉(zhuǎn)換方法(含浮點數(shù))
更新時間:2018年07月07日 17:14:08 作者:kick-ass。Nuisance
這篇文章主要介紹了python十進制和二進制的轉(zhuǎn)換方法(含浮點數(shù)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本文介紹了python十進制和二進制的轉(zhuǎn)換方法(含浮點數(shù)),分享給大家,也給自己留個筆記,具體如下:
我終于寫完了 , 十進制轉(zhuǎn)二進制的小數(shù)部分卡了我將近一個小時
上代碼
#-*- coding: utf-8 from decimal import Decimal def bTod(n, pre=4): ''' 把一個帶小數(shù)的二進制數(shù)n轉(zhuǎ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ù)部分 直接一行代碼二進制轉(zhuǎn)十進制 python還是騷 def dTob(n, pre=4): ''' 把一個帶小數(shù)的十進制數(shù)n轉(zhuǎ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ù)部分轉(zhuǎ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: #若十進制只有整數(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)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Python 內(nèi)置函數(shù)進制轉(zhuǎn)換的用法(十進制轉(zhuǎn)二進制、八進制、十六進制)
- Python二進制串轉(zhuǎn)換為通用字符串的方法
- Python 字符串與二進制串的相互轉(zhuǎn)換示例
- Python 字節(jié)流,字符串,十六進制相互轉(zhuǎn)換實例(binascii,bytes)
- Python實現(xiàn)的十進制小數(shù)與二進制小數(shù)相互轉(zhuǎn)換功能
- Python 16進制與中文相互轉(zhuǎn)換的實現(xiàn)方法
- python中常見進制之間的轉(zhuǎn)換方式
- python中str、bytes、十六進制字符串之間的相互轉(zhuǎn)換方法
相關(guān)文章
Python中的json對象與string相互轉(zhuǎn)換教程
python里有json這個庫,但并沒有json這個類,所以所謂的json對象本質(zhì)上就是一個dict;而json這個庫,用于實現(xiàn)dict到string、string到dict的互轉(zhuǎn),這篇文章主要介紹了Python中的json對象與string相互轉(zhuǎn)換教程,需要的朋友可以參考下2022-11-11python?PyAutoGUI實現(xiàn)自動化鼠標鍵盤等常用操作
這篇文章主要介紹了python?PyAutoGUI實現(xiàn)自動化鼠標鍵盤等常用操作使用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12Cpython3.9源碼解析python中的大小整數(shù)
這篇文章主要介紹了Cpython3.9源碼解析python中的大小整數(shù),在CPython中,小整數(shù)對象池是一種優(yōu)化機制,用于減少對常用小整數(shù)的內(nèi)存分配和銷毀開銷,需要的朋友可以參考下2023-04-04python?dowhy數(shù)據(jù)估計因果分析功能探索
這篇文章主要為大家介紹了python?dowhy數(shù)據(jù)估計因果分析功能實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-02-02