十進制轉二進制
- 原理:采用除2取余,逆序排列輸出。
- 實現:用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為小於1時為止,然后依次翻轉排序即可得到二進制數,在Python中我們采”//”(地板除)的方法實現轉換
# 十進制整數轉二進制
def decToBin(num):
arry = [] #定義一個空數組,用於存放2整除后的商
while True:
arry.append(str(num % 2)) #用列表的append方法追加
num = num // 2 #用地板除求num的值
if num == 0: #若地板除后的值為0,那么退出循環
break
return "".join(arry[::-1]) #列表切片倒敘排列后再用join拼接
print(decToBin(10))
輸出結果:1010
二進制轉十進制
- 原理:要從右到左用二進制的每個數去乘以2的相應次方求累加。
# 二進制整數轉十進制
def binToDec(binary):
result = 0 #定義一個初始化變量,后續用於存儲最終結果
for i in range(len(binary)):
#利用for循環及切片從右至左依次取出,然后再用內置方法求2的次方
result += int(binary[-(i + 1)]) * pow(2, i)
return result
print(binToDec("1010"))
結果:10