网站上点击图片局部放大如何做,南通网站制作价格,什么设计网站好,百度推广登陆文章目录 实验结论 实验 int 类型大小正常为4Byte 以小端序来看 0x12345678在内存中的存储为
0x78 0x56 0x34 0x120x78在低地址#xff0c;0x12在高地址 程序输出
#include stdio.h
#include string.h
#includewindows.hint main()
{int a 0x12345… 文章目录 实验结论 实验 int 类型大小正常为4Byte 以小端序来看 0x12345678在内存中的存储为
0x78 0x56 0x34 0x120x78在低地址0x12在高地址 程序输出
#include stdio.h
#include string.h
#includewindows.hint main()
{int a 0x12345678;printf(LOWORD %x\n,LOWORD(a));printf(HIWORD %x\n,HIWORD(a));printf(LOBYTE %x\n,LOBYTE(a));printf(HIBYTE %x\n,HIBYTE(a));
}LOWORD 5678
HIWORD 1234
LOBYTE 78
HIBYTE 56结论
可以看到以WORD结尾的是取出两个字节 BYTE结尾取出一个字节 LOWORD 是取出内存中低地址的前两个字节 HIWORD 是取出内存中高地址的后两个字节
LOBYTE 取出了内存中最低的一个字节0x78 HIBYTE 取出了第二个字节0x56 从这里来看他们是以两个字节为操作对象哪怕给出的数据是int类型的数据
按照我的猜测以WORD结尾的就是以4个字节为操作对象了 以下是测试
#include stdio.h
#include string.h
#include windows.hint main()
{unsigned long long a 0x123456789abcdef0;printf(long long - %x\n, sizeof(unsigned long long));printf(LOWORD %x\n, LOWORD(a));printf(HIWORD %x\n, HIWORD(a));printf(LOBYTE %x\n, LOBYTE(a));printf(HIBYTE %x\n, HIBYTE(a));
}此时a在内存中的表示为
0xf0 0xde 0xbc 0x9a 0x78 0x56 0x34 0x12输出结果为
long long - 8
LOWORD def0
HIWORD 9abc
LOBYTE f0
HIBYTE de看来和我们的猜想一致