python十進位制和二進位制的轉換 含浮點數

2022-07-17 06:12:08 字數 2729 閱讀 1019

現在是凌晨1點56  今天6月7號 高考

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

上** 

1

#-*- coding: utf-8

2from decimal import

decimal

3def btod(n, pre=4):

4'''

5把乙個帶小數的二進位制數n轉換成十進位制

6小數點後面保留pre位小數

7'''

8 string_number1 = str(n) #

number1 表示二進位制數,number2表示十進位制數

9 decimal = 0 #

小數部分化成二進位制後的值

10 flag =false

11for i in string_number1: #

判斷是否含小數部分

12if i == '.'

:13 flag =true

14break

15if flag: #

若二進位制數含有小數部分

16 string_integer, string_decimal = string_number1.split('

.') #

分離整數部分和小數部分

17for i in

range(len(string_decimal)):

18 decimal += 2**(-i-1)*int(string_decimal[i]) #

小數部分化成二進位制

19 number2 = int(str(int(string_integer, 2))) +decimal

20return

round(number2, pre)

21else: #

若二進位制數只有整數部分

22return int(string_number1, 2)#

若只有整數部分 直接一行**二進位制轉十進位制 python還是騷

2324

def dtob(n, pre=4):

25'''

26把乙個帶小數的十進位制數n轉換成二進位制

27小數點後面保留pre位小數

28'''

29 string_number1 = str(n) #

number1 表示十進位制數,number2表示二進位制數

30 flag =false

31for i in string_number1: #

判斷是否含小數部分

32if i == '.'

:33 flag =true

34break

35if

flag:

36 string_integer, string_decimal = string_number1.split('

.') #

分離整數部分和小數部分

37 integer =int(string_integer)

38 decimal = decimal(str(n)) -integer

39 l1 = [0,1]

40 l2 =

41 decimal_convert = ""

42while

true:

43if integer == 0: break

44 x,y = divmod(integer, 2) #

x為商,y為餘數

4546 integer =x

47 string_integer = ''.join([str(j) for j in l2[::-1]]) #

整數部分轉換成二進位制

48 i =0

49while decimal != 0 and i 50 result = int(decimal * 2)

51 decimal = decimal * 2 -result

52 decimal_convert = decimal_convert +str(result)

53 i = i + 1

54 string_number2 = string_integer + '

.' +decimal_convert

55return

float(string_number2)

56else: #

若十進位制只有整數部分

57 l1 = [0,1]

58 l2 =

59while

true:

60if n == 0: break

61 x,y = divmod(n, 2) #

x為商,y為餘數

6263 n =x

64 string_number = ''.join([str(j) for j in l2[::-1]])

65return int(string_number)

晚安 

Python 十進位制轉二進位制

計算機中的儲存 運算單位都是二進位制的0或1,該程式演示計算機如何將十進位制轉化成二進位制,進而處理的。理論上說,計算機可以處理無限長度的十進位制,當然如果真的是無限長度,那也是無限時間的一直在處理而 沒有最終結果。而如果問計算機又如何識別我們所輸入的鍵是代表什麼數字,進而轉化成什麼二進位制的,那 ...

二進位制和十進位制轉換

static final int default initial capacity 1 4 aka 16 檢視hashmap原始碼,發現這個static final int default initial capacity 1 4 值為16。這個是位移演算法。例如 4的二進位制是 0000 0100...

二進位制轉十進位制

二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...