Chinaunix首页 | 论坛 | 博客
  • 博客访问: 130792
  • 博文数量: 75
  • 博客积分: 1485
  • 博客等级: 上尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-11 20:57
文章分类
文章存档

2011年(1)

2010年(15)

2009年(59)

我的朋友

分类: C/C++

2009-05-22 15:38:57

#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

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