我正在制作一个随机数生成器。我正在使用联合来访问字节。
typedef unsigned int uint;
typdef unsigned char uchar;
union
{
uint intBits;
uchar charBits[4];
};
// 是的,我知道整数不能保证为 4,但忽略它。
所以如果数字 1 存储在这个联合中,它看起来像
00000000 0000000 00000000 00000001
正确的?
-1 的 int 看起来像
00000000 0000000 00000000 00000001
或者
10000000 0000000 00000000 00000001
所以 uint 的地址真的是 1 的位吗?charBits[0] 的地址是 1 的位吗?令人困惑的是这个。charBits[1],必须向左移动才能到这里
!
00000000 0000000 00000000 00000001
那么内存地址是从右到左还是从左到右变大?
编辑:我在 64 位 Windows 7 系统英特尔 i7 CPU 上。