欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python十進制和二進制的轉換方法(含浮點數)

 更新時間:2018年07月07日 17:14:08   作者:kick-ass。Nuisance  
這篇文章主要介紹了python十進制和二進制的轉換方法(含浮點數),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

我終于寫完了 , 十進制轉二進制的小數部分卡了我將近一個小時

上代碼

#-*- coding: utf-8
from decimal import Decimal
def bTod(n, pre=4):
  '''
  把一個帶小數的二進制數n轉換成十進制
  小數點后面保留pre位小數
  '''
  string_number1 = str(n) #number1 表示二進制數,number2表示十進制數
  decimal = 0 #小數部分化成二進制后的值
  flag = False  
  for i in string_number1: #判斷是否含小數部分
    if i == '.':
      flag = True
      break
  if flag: #若二進制數含有小數部分
    string_integer, string_decimal = string_number1.split('.') #分離整數部分和小數部分
    for i in range(len(string_decimal)):
      decimal += 2**(-i-1)*int(string_decimal[i]) #小數部分化成二進制
    number2 = int(str(int(string_integer, 2))) + decimal
    return round(number2, pre)
  else: #若二進制數只有整數部分
    return int(string_number1, 2)#若只有整數部分 直接一行代碼二進制轉十進制 python還是騷 

def dTob(n, pre=4):
  '''
  把一個帶小數的十進制數n轉換成二進制
  小數點后面保留pre位小數
  '''
  string_number1 = str(n) #number1 表示十進制數,number2表示二進制數
  flag = False  
  for i in string_number1: #判斷是否含小數部分
    if i == '.':
      flag = True
      break
  if flag:
    string_integer, string_decimal = string_number1.split('.') #分離整數部分和小數部分
    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為余數 
      l2.append(y)
      integer = x
    string_integer = ''.join([str(j) for j in l2[::-1]]) #整數部分轉換成二進制 
    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: #若十進制只有整數部分
    l1 = [0,1]
    l2 = []
    while True: 
      if n == 0: break
      x,y = divmod(n, 2) #x為商,y為余數 
      l2.append(y)
      n = x
    string_number = ''.join([str(j) for j in l2[::-1]]) 
    return int(string_number)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python中的json對象與string相互轉換教程

    Python中的json對象與string相互轉換教程

    python里有json這個庫,但并沒有json這個類,所以所謂的json對象本質上就是一個dict;而json這個庫,用于實現dict到string、string到dict的互轉,這篇文章主要介紹了Python中的json對象與string相互轉換教程,需要的朋友可以參考下
    2022-11-11
  • python?PyAutoGUI實現自動化鼠標鍵盤等常用操作

    python?PyAutoGUI實現自動化鼠標鍵盤等常用操作

    這篇文章主要介紹了python?PyAutoGUI實現自動化鼠標鍵盤等常用操作使用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Python實現帶圖形界面的炸金花游戲

    Python實現帶圖形界面的炸金花游戲

    詐金花又叫三張牌,是在全國廣泛流傳的一種民間多人紙牌游戲,它具有獨特的比牌規(guī)則。本文將通過Python語言實現帶圖形界面的詐金花游戲,需要的可以參考一下
    2022-12-12
  • Cpython3.9源碼解析python中的大小整數

    Cpython3.9源碼解析python中的大小整數

    這篇文章主要介紹了Cpython3.9源碼解析python中的大小整數,在CPython中,小整數對象池是一種優(yōu)化機制,用于減少對常用小整數的內存分配和銷毀開銷,需要的朋友可以參考下
    2023-04-04
  • 詳解python命令提示符窗口下如何運行python腳本

    詳解python命令提示符窗口下如何運行python腳本

    這篇文章主要介紹了詳解python命令提示符窗口下如何運行python腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Python使用Ollama API的詳細代碼示例

    Python使用Ollama API的詳細代碼示例

    這篇文章主要介紹了如何在Python中使用OllamaAPI,涵蓋了從環(huán)境準備、使用方法到高級功能的全面指南,無論是初學者還是經驗豐富的開發(fā)者都能從中受益,需要的朋友可以參考下
    2025-02-02
  • python偏函數的實例用法總結

    python偏函數的實例用法總結

    在本篇文章里小編給大家整理的是一篇關于python偏函數的實例用法總結內容,有興趣的朋友們可以跟著學習參考下。
    2021-07-07
  • Python3安裝與環(huán)境配置的超完整教程

    Python3安裝與環(huán)境配置的超完整教程

    這篇文章主要介紹了在Windows系統(tǒng)中安裝和配置Python3,包括下載、安裝、環(huán)境變量配置、驗證安裝、安裝常用工具和庫以及解決常見問題,需要的朋友可以參考下
    2025-02-02
  • python?dowhy數據估計因果分析功能探索

    python?dowhy數據估計因果分析功能探索

    這篇文章主要為大家介紹了python?dowhy數據估計因果分析功能實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-02-02
  • python中的Pillow常用功能詳解

    python中的Pillow常用功能詳解

    Pillow是一個強大的圖像處理庫,支持多種圖像操作,如打開、保存、裁剪、調整大小、旋轉、翻轉、過濾、合成、添加文字、調整模式和創(chuàng)建縮略圖,本文介紹python中的Pillow常用功能,感興趣的朋友一起看看
    2025-02-02

最新評論