[英]how to convert binary to decimal using python without using the bin function
iv做了一個十進制到二進制的轉換器,但是我需要一個不使用bin函數的二進制到十進制的轉換器,而且看起來很簡單,可以適合此代碼。 有人可以幫忙嗎?
choice=input('Please enter b for a binary to decimal conversion or d for a decimal to binary conversion:\n')
if choice == 'd':
decimalNum=int(input('Please enter a decimal number:\n'))
bit8=0
bit7=0
bit6=0
bit5=0
bit4=0
bit3=0
bit2=0
bit1=0
bit8=decimalNum%2
decimalNum=decimalNum//2
bit7=decimalNum%2
decimalNum=decimalNum//2
bit6=decimalNum%2
decimalNum=decimalNum//2
bit5=decimalNum%2
decimalNum=decimalNum//2
bit4=decimalNum%2
decimalNum=decimalNum//2
bit3=decimalNum%2
decimalNum=decimalNum//2
bit2=decimalNum%2
decimalNum=decimalNum//2
bit1=decimalNum%2
decimalNum=decimalNum//2
print(str(bit1)+str(bit2)+str(bit3)+str(bit4)+str(bit5)+str(bit6)+str(bit7)+str(bit7))
要將二進制轉換為十進制,只需執行以下操作:
int(binary_string, 2) # The 2 is the base argument from which we convert.
演示:
>>> int('0b10110', 2)
22
注意-您用來將十進制轉換為二進制的代碼有很多問題。 如果您堅持不為此目的使用內置函數,那么您可能會對這篇文章感興趣:
盡管就我個人而言,如果我想避免使用bin()
函數,我會做類似的事情:
"{0:#b}".format(an_integer)
演示:
>>> "{0:#b}".format(22)
'0b10110'
這比您當前的代碼更具Pythonic性。
這會容易得多,不是嗎?
conv = str(input('what do you want to convert?'))
if conv == 'binary':
x = str(input('enter binary : '))
ansBin = int(x, 2)
print('decimal for binary ', x, ' is ', ansBin)
elif conv == 'decimal':
y = int(input('enter decimal : '))
ansDec = bin(y)[2:]
print('binary for decimal ', y, ' is ', ansDec)
嘗試這個:
from __future__ import print_function
def binary(n):
i = 0
sum = 0
while n > 0 :
num = n % 10
n= n//10
sum = sum + (2**i) * num
i+=1
print(sum)
# Take decimal number from user
dec = int(input("Enter decimal: "))
binary(dec)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.