首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮忙看一上这个高地址与低地址 的例子, 看不懂

2012-12-30 
帮忙看一下这个高地址与低地址的例子, 看不懂啊下面程序输出是多少?Union U {char str[2]short int num}

帮忙看一下这个高地址与低地址 的例子, 看不懂啊
下面程序输出是多少?

Union U {
  char str[2];
  short int num;
};
int main() {
  U u;
  u.str[0] = 10;
  u.str[1] = 1;
  cout << u.num << endl;
  system("PAUSE");
  return 0;
}
复制代码
     结果为266。对于整数类型,都是低字节存低位,高字节存高位,因此低位是10,高位是1,结果=1*256+10=266。

有哪位能帮我分析一下这个运算过程吗? 看不懂? 
那个 1*256  为什么是乘上256? 这个256 是怎么来的? 
[解决办法]
不是1*256+1,你都理解错了!具体计算是这样:
char str[2];
首先存放数据10,在str[0]中是这样存放:8位,0000 1010
再是存放1,8位:0000 0001;
10在低位:所以str[2]中的数是这样存放:0000 0001 0000 1010;
u.num=2^8+10=266;

热点排行