十进制与二进制的互换

简介: 十进制与二进制的互换

0 引言

一般来说Python里有二进制,八进制,十进制和十六进制,我们一般使用的都是十进制,而二进制是机械语言,在计算机里有广泛的运用。因此,掌握十进制和二进制的转换,有利于我们读懂计算机的语言。


1 问题

每个非负整数N都有其二进制表示。例如,5可以被表示为二进制“101”11可以用二进制“1011”表示,依此类推。给定十进制数N,返回其二进制表示的反码所对应的十进制整数。


2 方法

首先使用bin函数使10进制的数变为2进制的数。使用for…in遍历2进制数的每一个字符,使‘1’变为0,使‘0’变为1,再将其依次存入一个新的列表。使用for…in遍历新列表里的数,使用2进制转10进制的数学算法,使2进制反码变成10进制数。


3 实验结果与讨论

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

n = int(input())
m = bin(n)
print(m)
list_l = []
k = 0
for i in m[2:]:
   if i == '0':
       i = 1
       list_l.append(i)
   if i == '1':
       i = 0
       list_l.append(i)
for j in range(len(list_l)):
   k += list_l[j]*pow(2,len(list_l)-1-j)
print(k)


4 结语

针对进制转换问题,提出了方法,通过实验,证明该方法是有效的。我们需要注意,使用bin函数转换成的二进制是使用字符串表示的,所以if的等号右边也应该使用字符。

目录
相关文章
|
4天前
二进制和进制转换
二进制和进制转换
12 0
|
7月前
|
C语言
C语言之将十进制整数转换为任意进制整数
C语言之将十进制整数转换为任意进制整数
154 0
|
4月前
|
C语言
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
25 0
|
11月前
|
C语言
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
103 0
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
|
C语言
c语言实现二进制八进制十进制和十六进制的相互转化
c语言实现二进制八进制十进制和十六进制的相互转化
255 0
C#(二)之十进制与二进制、八进制、十六进制之间的转换
所谓的进制,就是逢几进一的问题,生活中我们使用的是十进制,就是逢十进一。剩下的就不用多说了,下面开始一个一个来。
271 0
C#(二)之十进制与二进制、八进制、十六进制之间的转换
C语言:十进制、十六进制数据互换
C语言:十进制、十六进制数据互换