是低8位.不过这个我也讲不清.
我用这个程序验证的,也许数组的空间分配规则不一样也不一定。
#include<stdio.h>
#include <conio.h>
union mask{
char c[2];
int i;
}bit_mask;
void main()
{
bit_mask.i=256;
printf("%d%d",bit_mask.c[0],bit_mask.c[1]);
getch();
}
如果c[0]是高8位,显示的应该是10,而实际上显示的01.
期待高手回复....
恩
[此贴子已经被作者于2006-9-3 16:05:36编辑过]
----------------解决方案--------------------------------------------------------
加我的qq吧,这样进步可能更快些,学习的也不会太孤单!
46332383
----------------解决方案--------------------------------------------------------
这个我知道,呵呵。
只是我自己也模糊,3楼的理论是我以前记的,怎么好象跟眼前这个有些矛盾.....
数组是连续存储,也就是说内存地址应该不是递减而是递增才对,那么这个看似矛盾的问题应该出在i的编码上,
那么就只有把i的编码理解为它是从低位编到高位才能合理解释这个问题.
换句话说,256在内存中应该是这样存储:0000 0000 1000 0000
而不是0000 0001 0000 0000
----------------解决方案--------------------------------------------------------