C++博客-myjfm-最新评论http://www.cppblog.com/myjfm/CommentsRSS.aspx黑 白 | | 白 黑 爱到可以不爱,爱到无所谓离不离开zh-cnTue, 01 Jan 2013 00:09:40 GMTTue, 01 Jan 2013 00:09:40 GMTcnblogsre: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143696zuhdzuhdFri, 08 Apr 2011 06:46:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143696嗯 我理解的补码的设计就是为了方便算术运算

zuhd 2011-04-08 14:46 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143695myjfmmyjfmFri, 08 Apr 2011 06:43:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143695补码本身就是个约定

myjfm 2011-04-08 14:43 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143690zuhdzuhdFri, 08 Apr 2011 05:57:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143690-129 与 -1的补码是相同的
-130 与-2的补码也是相同的
那么
-128与-0或是0的补码应该也是相同的
那为什么不说
11111111是-129的补码呢,
却说是-1的补码呢?
这8个bit完全能胜任-129的所有的存储信息
所以我坚持认为10000000b是-128的补码是个约定,请指教

zuhd 2011-04-08 13:57 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143685myjfmmyjfmFri, 08 Apr 2011 03:38:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143685既然高位已经被截取了那还怎么说“不是不能存储”呢?
求补码的过程本来就要把最高位符号位也用于计算
最高位符号位除了表示这个数是正是负外还有数值上的意义,它的作用不单单是符号位
所以你看-128的时候不能把最高位去掉再去看剩余7bit,要8个bit一起看~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

myjfm 2011-04-08 11:38 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143678zuhdzuhdFri, 08 Apr 2011 02:47:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143678我顶多理解它是一个约定,因为128用除去最高位之后剩余的7bit根本无法存储,存储的也是截取后的低7位,7个0。

zuhd 2011-04-08 10:47 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143670myjfmmyjfmFri, 08 Apr 2011 02:00:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143670对于有符号数来说:
如果是原码:00000000b是+0,10000000b是-0
如果是反码:00000000b是+0,11111111b是-0
而对于补码:00000000b是+0也是-0

下面是二进制代码与补码的对应:

00000000 +0/-0
00000001 +1
...
01111111 +127
10000000 -128
10000001 -127
...
11111110 -2
11111111 -1
从计组书上copy下来的~

myjfm 2011-04-08 10:00 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143662zuhdzuhdFri, 08 Apr 2011 00:57:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/08/143572.html#143662我去 我一直以为10000000B是-0
难道-0就是-128吗?从理论上讲不对啊,但是它加上1后确实等于-127
--!

zuhd 2011-04-08 08:57 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/07/143572.html#143652myjfmmyjfmThu, 07 Apr 2011 14:04:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/07/143572.html#143652对于八位有符号数,能表示的数的范围不就是-128~127吗?-128不是0x80吗?
10000000B作为有符号数的补码来说怎么会是0的补码呢?好好看看计算机组成原理吧~

myjfm 2011-04-07 22:04 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/07/143572.html#143651myjfmmyjfmThu, 07 Apr 2011 13:57:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/07/143572.html#143651不知道你说的这段话和我文章最后一段有什么区别阿?

myjfm 2011-04-07 21:57 发表评论
]]>
re: 取反操作的细节问题http://www.cppblog.com/myjfm/archive/2011/04/07/143572.html#143630zuhdzuhdThu, 07 Apr 2011 08:23:00 GMThttp://www.cppblog.com/myjfm/archive/2011/04/07/143572.html#143630对于8bit的0x80也不能说是十进制-128的补码吧,最多说是10000000B的补码,当然进行逻辑运算的结果不会有错,如果补齐后最后截取低8bit的数据是
1000000B的话,我可能会说它是0,不知道理解有错没?

zuhd 2011-04-07 16:23 发表评论
]]>