首先Python中的求二进制的方法,有一个函数是bin()
返回的是(2,2),就是说8/3,商是2,余数是2
例如下面的代码,
bin(8)
我们求8的二进制可以直接用bin()函数
'0b1000'
'需要注意的是这里输出的是字符串,并且前面有0b。我也不懂这是啥意思,但是不影响我们取其后面的数字。
另外一种方法就是用divmod()方法
例如:
divmod(8.2)
这个语句返回的是
(4,0)
意思就是8/2 商是4,余数是0
再例如:
divmod(8,3)
返回的是(2,2),就是说8/3,商是2,余数是2
那么我们把余数添加到一个列表里面,再经过转换,不是就能得到二进制码了吗?
如下:
def dec2bin(string_num):
num = int(string_num)
mid = []
while True:
if num == 0: break
num,rem = divmod(num, 2)
mid.append(rem)
return ''.join([str(x) for x in mid[::-1]])
dec2bin(65)
输出如下
'1000001'