概述
写出下列程序在X86 上的运行结果:
struct mybitfields {
unsigned short a:4;
unsigned short b:5;
unsigned short c:7;
}test;
void main(){
int i;
test.a=2;
test.b=3;
test.c=0;
i=*((short*)&test);
printf("%dn",i);
system("pause");
}
输出结果:50
分析:
a:4表示a占4位
b:5表示b占5位
c:7表示c占7位
内存分配方式是从低位到高位(a在低位,c在高位)
当有赋值:test.a=2(0010) test.b=3(00011) test.c=0(0000000)
高 ---------- 32 位--------> 低
00000000 00000000 00000000 00110010
00000000 00000000 |+++++++|====--|--
--------------------—|c------|b------|a-
---------------------|0------|3------|-2--
X86 上市16位CPU,对应的short占两个字节。
拼成00000000 00110010 这个二进制值(short)为十进制50
最后
以上就是苹果台灯为你收集整理的写出下列程序在X86 上的运行结果。的全部内容,希望文章能够帮你解决写出下列程序在X86 上的运行结果。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复