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的等号右边也应该使用字符。