| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 264 人关注过本帖
标题:【求助】补码问题
只看楼主 加入收藏
stevenwu
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-12-7
结帖率:90.91%
收藏
已结贴  问题点数:5 回复次数:4 
【求助】补码问题
int x=-32768 其补码是10000000 00000000 不是还差一位符号位吗,不应该是110000000 00000000吗?但是这样不是多了一位??新手不懂,求指教
2013-12-07 14:17
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:2 
这个 和 8位下的-128情况是一样的,它们的补码都是计算机所规定的

-128的补码是 10000000
-32768 是 10000000 00000000

三十年河东,三十年河西,莫欺少年穷!
2013-12-07 14:36
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:2 
正数是以二进制数的形式存放在计算机内存中的,如
1           二进制  0000 0000 0000 0000 0000 0001   -->转换成十六进制  0x000001
2           二进制  0000 0000 0000 0000 0000 0010   -->转换成十六进制  0x000002
。。。
127         二进制  0000 0000 0000 0000 0111 1111   -->转换成十六进制  0x00007f
。。。
32767       二进制  0000 0000 0111 1111 1111 1111   -->转换成十六进制  0x007fff
32768       二进制  0000 0000 1000 0000 0000 0000  -->转换成十六进制   0x008000
负数是以补码的形式存放在计算机内存中的(补码=正数的反码+1),如
32768       二进制  0000 0000 1000 0000 0000 0000  -->转换成十六进制   0x008000
32768的反码 二进制  1111 1111 0111 1111 1111 1111  -->转换成十六进制   0xff7fff
-32768      二进制  1111 1111 1000 0000 0000 0000  -->转换成十六进制   0xff8000

[ 本帖最后由 小小战士 于 2013-12-7 15:41 编辑 ]

小小战士,战士中的战斗机!
2013-12-07 15:30
ytlcainiao
Rank: 2
等 级:论坛游民
帖 子:48
专家分:74
注 册:2013-11-28
收藏
得分:2 
正数的补码就是其原码,负数的补码为其绝对值的原码的反码加1
2013-12-07 16:55
stevenwu
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-12-7
收藏
得分:0 
回复 4楼 ytlcainiao
你好聪明
2013-12-08 13:09
快速回复:【求助】补码问题
数据加载中...
 
   



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

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