| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1413 人关注过本帖
标题:负数补码问题,请高手赐教…………
只看楼主 加入收藏
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
结帖率:86.11%
收藏
已结贴  问题点数:20 回复次数:7 
负数补码问题,请高手赐教…………
负数的补码等于其反码加1.我想问的是反码加1的运算是否和位与运算一样?如果不一样那么这个加1到底应该怎么是怎么个运算,请高手帮忙解惑下,最好能给个及格例子,谢谢了!!!
搜索更多相关主题的帖子: 负数 
2010-08-02 11:09
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
帮你找了一些资料,楼主好好看看:
1、在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
2、补码与原码的转换过程几乎是相同的。
数值的补码表示也分两种情况:
(1)正数的补码:与原码相同。
例如,+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码
0000111按位取反为1111000;再加1,所以-7的补码是11111001。
百科网址:http://baike.baidu.com/view/377340.htm

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-08-02 11:59
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
收藏
得分:0 
以下是引用sunyh1999在2010-8-2 11:59:28的发言:

帮你找了一些资料,楼主好好看看:
1、在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
2、补码与原码的转换过程几乎是相同的。
数值的补码表示也分两种情况:
(1)正数的补码:与原码相同。
例如,+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码
0000111按位取反为1111000;再加1,所以-7的补码是11111001。
百科网址:http://baike.baidu.com/view/377340.htm


这个还是没有回答我的问题
2010-08-02 12:46
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:5 
反码加1的运算和位与运算肯定不一样啊,反码加1只是在最后一位加1,
比方说-3求反码过程为(设机器为32位的)
-3的原码为10000000 00000000 00000000 00000011;
除符号位外,其余全部取反 ,就是 11111111 11111111 11111111 11111100;
再加1,就是 11111111 11111111 11111111 11111101; 这就是-3的补码。

ps 正数的补码与原码相同。
2010-08-02 15:14
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
收藏
得分:0 
以下是引用a151937404在2010-8-2 15:14:58的发言:

反码加1的运算和位与运算肯定不一样啊,反码加1只是在最后一位加1,
比方说-3求反码过程为(设机器为32位的)
-3的原码为10000000 00000000 00000000 00000011;
除符号位外,其余全部取反 ,就是 11111111 11111111 11111111 11111100;
再加1,就是 11111111 11111111 11111111 11111101; 这就是-3的补码。

ps 正数的补码与原码相同。

就是把最后一位变成1吗???如果最后位是1的话那加1是不是变成0,还要进一位过去???
2010-08-02 16:54
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:5 
进位之后,只取原来的位数.
2010-08-02 16:59
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
收藏
得分:0 
以下是引用广陵绝唱在2010-8-2 16:59:50的发言:

进位之后,只取原来的位数.

原来是0还是0,原来是1还是1???那进过去有什么意思………………
2010-08-02 20:30
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:10 
有进位就往前进啊,要是符号位下面还有进位的话就把进位去掉。比方说11111111 11111111 11111111 11111111 ,加1后成为 10000000 00000000 00000000 00000000。
2010-08-03 08:12
快速回复:负数补码问题,请高手赐教…………
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019708 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved