C++笔试题
来源:互联网 发布:mac音乐制作软件有哪些 编辑:程序博客网 时间:2024/06/03 22:48
写出下列程序在X86上的运行结果
struct mybitfields{ unsigned short a : 4; unsigned short b : 5; unsigned short c : 7;} test void main(void){ int i; test.a = 2; test.b = 3; test.c = 0; i = *((short *)&test); printf("%d\n", i);}
这个题的为难之处呢,就在于前面定义结构体里面用到的冒号,如果你能理解这个符号的含义,那么问题就很好解决了。这里的冒号相当于分配几位空间,也即在定义结构体的时候,分配的成员a 4位的空间, b 5位,c 7位,一共是16位,正好两个字节。下面画一个简单的示意:
变量名 位数
test 15 14 13 12 11 10 9 |8 7 6 5 4 |3 2 1 0
test.a | |0 0 1 0
test.b |0 0 0 1 1 |
test.c 0 0 0 0 0 0 0 | |
在执行i=*((short *)&test); 时,取从地址&test开始两个字节(short占两个字节)的内容转化为short型数据,即为0x0032,再转为int型为0x00000032,即50
0 0
- c++/c笔试题
- c/c++笔试题
- c笔试题
- C语言笔试题
- C语言笔试题
- C/C++笔试题!!!!
- C语言笔试题
- c笔试题
- c笔试题
- c语言笔试题
- c/c++笔试题
- 若干C笔试题
- C/C++笔试题
- c语言笔试题
- 一道C笔试题
- C/C++笔试题
- c/c++笔试题
- C/C++笔试题
- NSURLSession/NSURLConnection HTTP load failed解决办法
- linux内存释放
- eclipse插件FindBugs使用笔记
- hibernate无法自动创建表的原因整理
- 解决Tomcat v8.0 Server at localhost failed to start.
- C++笔试题
- Java集合collection编程题及答案
- MFC颜色对话框使用
- MYSQL使用inner join 进行 查询,删除,修改
- NOI库8756 砝码称重V2
- 需求:MYSQL表中一个字段用逗号分隔,需要查出来split拆分并依次存入另一个表的一个字段中
- JAVA设计模式(1) —<创建型>工厂方法模式(Factory Method)
- Chrome Developer Tools之网络监控与调优
- Fragment