当前位置: 代码迷 >> C语言 >> [求助]关于数的补码问题
  详细解决方案

[求助]关于数的补码问题

热度:90   发布时间:2005-02-06 16:05:00.0
[求助]关于数的补码问题
大家好!请问―1在内存单元中的存放形式(以补码形式存放) 为什么是:1111111111111111,其中有16个1,第一个1代表负号。
搜索更多相关的解决方案: 内存  负号  形式  单元  

----------------解决方案--------------------------------------------------------
那么,你为什么要叫贾颖杰? 那么,为什么1后面是2?前面是0? 有些东西只是“规定”,约定成俗!
----------------解决方案--------------------------------------------------------

第一贴啊!!

回楼主: 其实数据在内存中是以二进制形式存放的,而在内存中一般以16位来存放一个int整数,而正数以其原码形式存放(其实是原码与补码相同),负数则要用其补码形式存放.因此,负数要将其绝对值写成二进制形式,然后进行按位取反,再加1. 如-1:先写成1的原码000000000001,按位取反111111111110,加1得111111111111为-1的二进制补吗,即-1在内存中的存放形式. KO!


----------------解决方案--------------------------------------------------------
非常感谢版主和云随心动!
----------------解决方案--------------------------------------------------------
是啊,为什么我要叫我啊~~~~为什么啊~~~~
这个世界太奇妙了,竟然还有KNOCKER这样可爱的'moving object'
----------------解决方案--------------------------------------------------------
knocker的回答太可爱了,但我还是支持云随心动的详细讲解。
----------------解决方案--------------------------------------------------------
  相关解决方案