Binary 理解一个';补语

Binary 理解一个';补语,binary,number-systems,ones-complement,Binary,Number Systems,Ones Complement,我有一个关于二进制数补码的问题,也许有人能帮我理解 我正在学习计算机安全测试,我正在练习将十进制数转换成二进制数,然后使用1和2的补码。我得到了十进制数237,并将其转换为二进制的11101101。我知道,在补码中,你把位颠倒过来,这很简单。当我倒过来的时候,我得到00010010,但是答案忽略了前三个0。有没有人能向我解释一下原因?值237太大,无法存储在一个带补码的8位有符号字节中。如果它存储在一个16位整数中,那么它和它的1的补码否定将在基2中有各自的表示: 000000001110110

我有一个关于二进制数补码的问题,也许有人能帮我理解


我正在学习计算机安全测试,我正在练习将十进制数转换成二进制数,然后使用1和2的补码。我得到了十进制数237,并将其转换为二进制的11101101。我知道,在补码中,你把位颠倒过来,这很简单。当我倒过来的时候,我得到00010010,但是答案忽略了前三个0。有没有人能向我解释一下原因?

值237太大,无法存储在一个带补码的8位有符号字节中。如果它存储在一个16位整数中,那么它和它的1的补码否定将在基2中有各自的表示:

0000000011101100

1111111100010011

当你用手做这样的算术运算时,如果你打算以后对这些位求反,请在数字的左边多保留几个数字,以说明数字的符号。

前导0的数字没有任何意义。基本上,在十进制中可以说07==7==0000000000 7,所以在二进制中00010010==10010==00000000000000 10010同样有效。

仍然有点困惑,是因为237大于2^7吗?还有,为什么要去掉3个零而不仅仅是1?比如,如果它是200,我只会包括6位数字。只是想知道截止点在哪里。是的,如果保存它的数据类型有N位,那么对于数字的大小,最多有N-1位可用