gaoxiuhua520 发表于 2022-9-3 00:09:34

十进制66 转换到二进制数

66   33168    4   2   1
0   1    0   0    0   0   1这个数值只有33后面还有个0才达到数值66
我初步估计是不是整除   2的数要加多一个0

Hello. 发表于 2022-9-3 00:14:49

本帖最后由 Hello. 于 2022-9-3 00:15 编辑

1000010
将数字除以2。
获取下一次迭代的整数商。
获取其余的二进制数字。
重复这些步骤,直到商等于0

jackz007 发表于 2022-9-3 00:43:32

def foo(n):
    s = ''
    while n:
      s = str(n % 2) + s
      n //= 2
    return s
print(foo(66))

gaoxiuhua520 发表于 2022-9-3 00:56:49

Hello. 发表于 2022-9-3 00:14
将数字除以2。
获取下一次迭代的整数商。
获取其余的二进制数字。


我也理解啊但后期1除2 不是结束了吗

gaoxiuhua520 发表于 2022-9-3 01:44:23

Hello. 发表于 2022-9-3 00:14
将数字除以2。
获取下一次迭代的整数商。
获取其余的二进制数字。


好像到最后结果是多一个零

wp231957 发表于 2022-9-3 05:48:12

gaoxiuhua520 发表于 2022-9-3 01:44
好像到最后结果是多一个零

短除法是从后向前查数
0   1    0   0    0   0   1这个数值只有33后面还
你这个反过来就是答案

hveagle 发表于 2022-9-3 07:34:01

66

二进制

1000010

Twilight6 发表于 2022-9-3 08:18:58


计算二进制数,除 2 取余法,后再将得到的余数取倒叙

你忘记取倒叙了,所以 01    0   0    0   0   1 相当于 1    0   0    0   0   1 转换为十进制恰好为 33

但是倒叙后应该为1    0   0    0   0   10 这才是 66 的二进制

柿子饼同学 发表于 2022-9-3 09:17:21

以八位二进制举例 , 每个二进制代表不同的数值 , 只需要从大到小依次凑出 66 即可
先凑 64 , 还余 2 , 再给 2 就完成了 , 减号是符号位
- 64 32 168421 # 66
01000010
页: [1]
查看完整版本: 十进制66 转换到二进制数