| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9689 人关注过本帖
标题:-32768的原码和补码怎么表示?
只看楼主 加入收藏
厦明月
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-28
收藏
 问题点数:0 回复次数:7 
-32768的原码和补码怎么表示?
问一个问题,-32768的原码和补码怎么表示?他的原码是10000000 00000000,补码还是10000000 00000000,但是这是为什么?怎么计算的?
2007-01-07 23:00
crazyc
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-8-5
收藏
得分:0 
在C中,用高位置1来表示负数,int型占两个字节共16位,32768的二进制是10000000,00000000,高位为1,系统会认为是负数,所以32768需要用长型表示,占四个字节。最高位就不是1了。(00000000,00000000,10000000,00000000)
-32768在内存中的表示是10000000,00000000。过程是:先读入正值32768(10000000,00000000),再取反(01111111,11111111),再加1(10000000,00000000)
这样明白不
2007-01-08 07:12
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 
以下是引用厦明月在2007-1-7 23:00:07的发言:
问一个问题,-32768的原码和补码怎么表示?他的原码是10000000 00000000,补码还是10000000 00000000,但是这是为什么?怎么计算的?

如果光是从数的表示来看,-32768 他的原码也不是10000000 00000000,最高位是符号位.前面在加一个1,不过在C之类的语言方面,也正如楼上所说.


在不断的拼搏与进取中,定能创造一片天地!
2007-01-08 12:16
厦明月
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-28
收藏
得分:0 
还有一点,int型的可以表示的整数范围是-32768—32767,-32768不是用两个字节16位表示的吗?为什么这里又成了32位的?

2007-01-08 12:17
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 

这样的话就会出现溢出!如:输入32768,则上溢,输出:-32768


在不断的拼搏与进取中,定能创造一片天地!
2007-01-08 12:34
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
-32768这个应该是十进制吧,先把32768化成二进制,这个时候是原码,然后取反,再加一,这就是它的补码,加法补码与原码一样,它们规则是补码=反码+1.

谁有强殖装甲第二部,可以Q我460054868
2007-01-08 21:36
ienjoy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-2
收藏
得分:0 

isee


御剑侠
2007-01-08 23:35
ienjoy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-2
收藏
得分:0 

isee


御剑侠
2007-01-08 23:36
快速回复:-32768的原码和补码怎么表示?
数据加载中...
 
   



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

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