【楼主】youyouyou2012-12-05 16:56
» 她问我用32位存放的32767的二进制补码加1后变成什么样,虽然我学过计算机但是我毕业这么多年了都忘完了。但是我借助百度,同时努力想了想应该是这样的:32767补码00000000 00000000 01111111 11111111加1变成00000000 00000000 10000000 00000000好像是-32768的补码。结果她说不对,书上写的是加1变成00000000 00000000 11111111 11111111把我弄晕了,求助各位大神到底哪个对啊?
作者:youyouyou2012-12-05 16:58
自己挽尊一下。。
作者:专黑麦迪三十年2012-12-05 16:59
32位 怎么会影响到 32767这么小的数字 如果说16位还有可能出问题
作者:seno2012-12-05 16:59
32767+1=32768,16位才是-32768吧,至于那个65535怎么来的我就不知道了
作者:专黑麦迪三十年2012-12-05 17:00
她是想表达16位吧。。。比如short 型。她搞错了 认为是32位吧。。真愁人
作者:光渝影2012-12-05 17:01
正数的2进制补码同其原码表示,负数的是符号位为1,数值位是将原码按位取反末位加1
作者:MikeZTM2012-12-05 17:01
正数反码补码? 你确定?
作者:专黑麦迪三十年2012-12-05 17:02
32767+1当然是32768。。。你当计算机是傻子么。。
作者:MikeZTM2012-12-05 17:02
她是想表达16位吧。。。比如short 型。她搞错了 认为是32位吧。。真愁人 32767+1=32768,16位才是-32768吧,至于那个65535怎么来的我就不知道了 short是32位, int或者long是64位. Post by youyouyou (2012-12-05 17:02) 现在争论关键在于32767+1后最后16位是不是都是1.我也懵了~~ 真蛋疼 1后面15个0就是32768 15个1是32767 这有什么难理解的。最后15位是0。。
作者:youyouyou2012-12-05 17:08
真蛋疼 1后面15个0就是32768 15个1是32767 这有什么难理解的。最后15位是0。。 short是32位, int或者long是64位. ok,明白了,那就是我对了。PS:我问了那个书的SB作者是谭浩强! 呵呵字数补丁.exe 这是C的. 呵呵^2