8:30爬起来去笔试,感觉灰常酸爽。
考的时候很淡定,回来查阅知识点哭晕在厕所。
这会儿缓过来,总结几个错题吧,只能记录一下题目的大致意思咯:
1 问a的值是多少?(选D)
<span style="font-family:KaiTi_GB2312;font-size:18px;"> unsigned long int a = 0xAABBCCDD;
unsigned char b = -1;
a = a >> 24 ^b;</span>四个选项:A:0xAA B:0xBB C:0x44 D:0x55很显然,这题考查重点在于-1的二进制表达和异或的运算法则。
关于进算计中数据的二进制表达:
在计算机中,数值都是以补码的形式保存。
补码:正数的补码和原码一样。
负数的补码,就是在原码基础上,保持符号位不变,其他位取反,然后再加1。(即反码加1)
其中符号位:0表示正,1表示负。
按位异或 ^:相同为0,相异为1。
(PS:同或是相同为1,相异为0。)
2 问a的值是多少?(选D)
<span style="font-family:KaiTi_GB2312;font-size:18px;"> int a, b = 7;
a = b+2 = a+b;</span>四个选项:A:9 B:不能确定 C:16 D:不能通过编译这里还是比较微妙的,如果第二句只有a = a+b; 那么就要选B了。
b+2是不能被赋值的。
3 win32系统下,输出结果是什么?(选D)
<span style="font-family:KaiTi_GB2312;font-size:18px;"> union s{char a[4]; unsigned long l;}ss = {'a','b','c','d'};
cout << ss.l << endl;</span>
四个选项:A:'a' B:'b' C:'c' D:'d'
这里s是个共用体,但牵扯到大端小端存储问题。
可以参考这个:
http://blog.youkuaiyun.com/zhaoshuzhaoshu/article/details/37600857/
OK。。。我要去面试了
4032

被折叠的 条评论
为什么被折叠?



