已然就位 发表于 2017-10-15 21:34:54

这是口述比截图更能表达清楚,清大神不要嫌烦

我在看标志寄存器,甲鱼老师每次说转换数值的时候说的太快了,没反应过来就下个标志了。现在在说溢出和进位,但是说到一半甲鱼老师再给我们演示溢出在debug。他说:0088无符号是88,有符号是-120的补码。有点混乱。先说说我的理解:无符号位就是二进制数我标记红字的那位是是0但是88不是10001000?计算器也帮不了我我也只能求助了。还有我在求证下,进位说白了就是宏观意义上1001 1000+1001 1000就是98h+98h红字相加溢出了然后标志竖起CY
                            溢出就是微观意义上超过-128~127这个范围然后竖起OV


已然就位 发表于 2017-10-15 22:15:47

和我计算器不一样

已然就位 发表于 2017-10-15 22:17:11

已然就位 发表于 2017-10-15 22:15
和我计算器不一样

我算出来130补码是-131

丶忘却的年少o 发表于 2017-10-15 23:57:29

不过我觉得视频说的应该不是0088,是0088h是吧?我想了半天也不可能是十进制的88呀,应该是十六进制的88h,88h = 136 = 1000 1000b,要是无符号数,第7位就可以当数乘,2^7+2^3 = 136,但是当有符号位就是保持第7位别动,视频里说-120的补码,补码的来历就是负数的绝对值除了符号位外都取反+1。那么推算一下,我们来算下-120的补码,按照补码的算法,120 = 111 1000b,但是是个有符号位,第 7 位要写上去,就是 1111 1000b,取反 10000111b,再+1,10001000b,就是-120的补码,这么看来没错,就是这样的。总结下来就一句话,88h = 10001000b,有符号就是-120,没符号就是136
看下这个帖子:http://bbs.fishc.com/forum.php?mod=viewthread&tid=67124&highlight=%B2%B9%C2%EB

已然就位 发表于 2017-10-16 08:32:30

丶忘却的年少o 发表于 2017-10-15 23:57
不过我觉得视频说的应该不是0088,是0088h是吧?我想了半天也不可能是十进制的88呀,应该是十六进制的88h, ...

慢点慢点一步一步来:88h无符号是136理解,我用计算器算了下直接给我跳有符号的-120.,88h=1000 1000b
有符号就是第七位不动了那是怎么算出-120的。我找到自己的错误了我以为-120是补码

已然就位 发表于 2017-10-16 08:44:26

丶忘却的年少o 发表于 2017-10-15 23:57
不过我觉得视频说的应该不是0088,是0088h是吧?我想了半天也不可能是十进制的88呀,应该是十六进制的88h, ...

大神,你给我的链接:-3其实二进制就是1111 1101.而这个二进制怎么来的就是3的补码-3:;1000 0011的补码
1111 1101

已然就位 发表于 2017-10-16 08:46:07

已然就位 发表于 2017-10-16 08:44
大神,你给我的链接:-3其实二进制就是1111 1101.而这个二进制怎么来的就是3的补码-3:;1000 0011的补码
...

不是弄错了:不是3的补码-3

已然就位 发表于 2017-10-16 09:01:54

已然就位 发表于 2017-10-16 08:46
不是弄错了:不是3的补码-3

应该能这样总结吧:无符号位是136有符号位是-120=1111 1000b就是000 1000b的补码

已然就位 发表于 2017-10-16 09:05:45

丶忘却的年少o 发表于 2017-10-15 23:57
不过我觉得视频说的应该不是0088,是0088h是吧?我想了半天也不可能是十进制的88呀,应该是十六进制的88h, ...

谢谢了

丶忘却的年少o 发表于 2017-10-16 09:53:32

已然就位 发表于 2017-10-16 09:05
谢谢了

没事,你明白就好
页: [1]
查看完整版本: 这是口述比截图更能表达清楚,清大神不要嫌烦