请教补码10000000的原码是多少啊,它表示多大呢?怎么算的
初学小甲鱼的汇编语言课程,讲的通俗易懂,太好了,对于补码这快我还是不太理解,想问一下:补码10000000的原码是多少啊,还是10000000吗,补码10000000的大小表示多少啊,是-128吗,
最高位不是符号位吗?怎么能参与计算呢,我搞糊涂了,求教,不知道甲鱼老师能指点一下不
好啊 谢谢了呵呵
好啊 谢谢了呵呵 补码有一个比较容易理解的算法:
任意一个负数我们对其求反,即0变为1,1变为0
然后两个数相加肯定=11111111
1100+0011=1111 1011+0100=1111
而11111111再加1=00000000,最高位舍去变成0
所以得出一个结论:
负数+ 取反 +1=0
(1)将一个负数求其补码:
如-104,变成 -104+103+1=0
103的二进制用除2取余法为01100111
也就是说 -104的补码跟 01100111相反,所以-104=10011000
(2)已知补码形式,求其表示的值
同样的道理
10011000取反 01100111=103
所以 ?+103+1=0?=-104 ;P 顺便学习下,谢了。。。 其补码定义为-128 [-128]补=2的八次方-128=128,也就是10000000B,这个数比较特殊 javanetwork 发表于 2011-8-18 22:58 static/image/common/back.gif
补码有一个比较容易理解的算法:
任意一个负数我们对其求反,即0变为1,1变为0
这位大侠你真是太牛了,这么好的方法我还从来没听过,我们老师怎么不教呢,哎!
还想问你下,你这种方法是另辟蹊径,请问能不能说说如果我就按照定义去求10000000的原码该怎么求?比如先减去1得11111111(最高位的1我当是符号位没有参加运算,没有动),再取反又得10000000,为什么又回来了啊,虽然2^7=128好像对了,但是符号位的1怎么又能参与运算呢,求教
已经一天没有坚持看汇编了,:Q,阿门! 本帖最后由 javanetwork 于 2011-8-20 20:55 编辑
xznwood 发表于 2011-8-19 22:27 http://bbs.fishc.com/static/image/common/back.gif
这位大侠你真是太牛了,这么好的方法我还从来没听过,我们老师怎么不教呢,哎!
还想问你下,你这种方 ...
取反再加1,添个负号
其实跟我说的是同一个理,只不过比较容易接受
符号位当然也参与运算了,符不符号是我们说了算,
计算机就一SB,哪懂得正负
10000000 取反变成01111111
两者相加,=11111111=-1
所以10000000=-1-01111111=-1-127=-128
页:
[1]