Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149872
  • 博文数量: 91
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-09 11:40
文章分类
文章存档

2011年(1)

2010年(4)

2009年(86)

我的朋友
最近访客

分类: C/C++

2009-06-12 10:53:41

#include <stdio.h>
void main()
{
   short int n=0x7fff,m=n+1;
   printf("%d,%d\n",n,m);
}

程序运行结果为:32767,-32768

(1)short int型占用2字节

(2)计算机中数值是以补码形式存放(但输出是原码),负数的补码为除符号位其余位取反后加1,负数的源码为补码除符号位每位取反加1.

(3)m(补码)=n(补码)+1=1000,0000,0000,0000,故m(原码)=-((000,0000,0000,0000)取反+1)=-1000,0000,0000,0000=-32768

阅读(465) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~