我只是有关于与二进制数字,也许有人可以帮助我了解一个补一个简单的问题。
我学习了计算机安全测试,我练转换十进制数二进制数,然后使用自己的和二进制补码。我给出的十进制数237和二进制转换它为11101101。据我所知,在一个人的补充你扭转位,这很简单。当我扭转它,我得到00010010但答案省去了前三0。任何机会,有人能向我解释这是为什么?
值237是太大而不能存储在与一个补一个8位有符号数。如果它被存储在一个16位int相反,它和它的补否定不得不在基地2分别表示:
0000000011101100
1111111100010011
在做这样的算术手,保持你的号码的左侧一些额外的数字占该数字的符号,如果你打算稍后否定位。
这些前导0不持有任何意义。基本上,在十进制可以说07 == 7 == 00000000007,所以在二进制同样00010010 == 10010 == 0000000000000010010成立。