# Python如何实现二进制和十进制互相转换？

2021年3月23日15:17:35 发表评论 348 次浏览

``````From decimal to binary
Input : 8
Output : 1 0 0 0

From binary to decimal
Input : 100
Output : 4``````

## 推荐：请尝试以下方法{IDE}首先, 在继续解决方案之前。

``````Keep calling conversion function with n/2  till n > 1, later perform n % 1 to get MSB of converted binary number.
Example :- 7
1). 7/2 = Quotient = 3(grater than 1), Remainder = 1.
2). 3/2 = Quotient = 1(not grater than 1), Remainder = 1.
3). 1%2 = Remainder = 1.
``````# Function to print binary number for the
# input decimal using recursion
def decimalToBinary(n):

if (n > 1 ):
# divide with integral result
decimalToBinary(n / / 2 )

print (n % 2 , end = ' ' )

# Driver code
if __name__ = = '__main__' :
decimalToBinary( 8 )
print ( "\n" )
decimalToBinary( 18 )
print ( "\n" )
decimalToBinary( 7 )
print ( "\n" )``````

``````1 0 0 0
1 0 0 1 0
1 1 1``````

``````# Function to convert Decimal number
# to Binary number

def decimalToBinary(n):
return bin (n).replace( "0b" , "")

# Driver code
if __name__ = = '__main__' :
print (decimalToBinary( 8 ))
print (decimalToBinary( 18 ))
print (decimalToBinary( 7 ))``````

``````1000
10010
111``````

``````Example -: 1011
1). Take modulo of given binary number with 10.
(1011 % 10 = 1)
2). Multiply rem with 2 raised to the power
it's position from right end.
(1 * 2^0)
Note that we start counting position with 0.
3). Add result with previously generated result.
decimal = decimal + (1 * 2^0)
4). Update binary number by dividing it by 10.
(1011 / 10 = 101)
5). Keep repeating upper steps till binary > 0.

Final Conversion -: (1 * 2^3) + (0 * 2^2) +
(1 * 2^1) + (1 * 2^0) = 11``````
``````# Function calculates the decimal equivalent
# to given binary number

def binaryToDecimal(binary):

binary1 = binary
decimal, i, n = 0 , 0 , 0
while (binary ! = 0 ):
dec = binary % 10
decimal = decimal + dec * pow ( 2 , i)
binary = binary / / 10
i + = 1
print (decimal)

# Driver code
if __name__ = = '__main__' :
binaryToDecimal( 100 )
binaryToDecimal( 101 )
binaryToDecimal( 1001 )``````

``````4
5
9``````

``````# Function to convert Binary number
# to Decimal number

def binaryToDecimal(n):
return int (n, 2 )

# Driver code
if __name__ = = '__main__' :
print (binaryToDecimal( '100' ))
print (binaryToDecimal( '101' ))
print (binaryToDecimal( '1001' ))``````

``````4
5
9``````