1.引言
一般来说python里共有十进制,二进制,八进制和十六进制,我们一般使用的都是十进制,二进制是机械语言,它在计算机和IT系统方面有着广泛运用,计算机通常使用它来处理、读取和写入数据。因此,掌握十进制和二进制的转换,有利于我们读懂机械语言,更好的理解计算机。
2.问题
每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 "101",11 可以用二进制 "1011" 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 "101" 的二进制反码为 "010"。给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。
示列
输入: 5
输出: 2
4实验结果与讨论
通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。
代码清单
n = int(input())
m = bin(n)
print(m)
list_1 = []
k = 0
for i in m[2:]: #十进制使用bin函数转换成二进制后,是0b开头,我们并不需要0b
if i == '0':
i = 1
list_1.append(i)
if i == '1':
i = 0
list_1.append(i)
for j in range(len(list_1)):
k += list_1[j] * pow(2, len(list_1) - 1 - j)
print(k)
5.结语
我们需要注意,用bin函数转换成的二进制是用字符串表示的,我们再遇1变0、遇0变1时,1、0为字符,if条件的等号右边也应该是字符,并且这也需要我们对for……in遍历有一定的掌握。
实习编辑:王晓姣
稿件来源:深度学习与文旅应用实验室(DLETA)