十进制变二进制现在差一位数不是差头部就是差尾部,现在这个代码是差尾部
另外这个函数体现的从倒着的数
def decimal_to_binary(value):
save_result = value
a = ''
text_save = ''
while value // 2 != 0:
value //= 2
save_result //= 2
a = save_result % 2
text_save += str(a)
# return text_save
print(text_save, save_result)
decimal_to_binary(789)
接下来是差头部(以正常二进制的顺序为 主)
def decimal_to_binary(value):
save_result = value
a = ''
text_save = ''
while value // 2 != 0:
value //= 2
a = save_result % 2
save_result //= 2
text_save += str(a)
# return text_save
print(text_save, save_result)
decimal_to_binary(789)
我将这个函数拆出来放在外面观察
value_out= 789
save_out = value_out
a_out = ''
text_save_out = ''
while value_out // 2 != 0:
value_out //= 2
a_out = save_out % 2
print("save_out % 2",a_out)
save_out //= 2
print("save_out //= 2",save_out)
text_save_out += str(a_out)
大家很明显的看到这里缺少 1整除2这个怎么办
接下来更有意思的.我做的让从十进制到处的数字,按二进制正常顺序排列 的函数
竟然打印对了头部,但是差尾部.
def decimal_arrange(text_arrange):
len_text = len(text_arrange)
for i in range(len_text):
# print(i)
print(text_arrange[-i], end='')
上面的那一行是十进制转。二进制,下面的是二进制正常显示,现在 就是解决这个头尾的数
我找到了.我找到了
原来我将
while value //2 !=0:
改成
while value /2 !=0:
这是我第一次发现它 的 除法 简简单单的除法
成功了.但是说一下.
它也要修改一下.不然打印的位置不对.
def decimal_arrange(text_arrange):
len_text = len(text_arrange)
dec_text = ""
for i in range(1, len_text + 1):
# print(i)
dec_text += text_arrange[-i]
print("二进制", dec_text)