現在是凌晨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...