C++Primer第五版 4.8节练习

练习4.25:如果一台机器上int 占32位,char占8位,用的是Latin-1字符集,其中字符‘q’的二进制形式是01110001,那么表达式~’q’<<6的值是什么?
答:
~优先级大于<<
开始时:0000000 00000000 00000000 01110001
按位取反:11111111 11111111 11111111 10001110
左移6位:11 11111111 11111111 10001110 000000

练习4.26:在本节关于测验成绩的例子中,如果使用unsigned int作为quiz1的类型会发生什么情况?
答: unsigned long 在任何机器上都将至少拥有32位,而unsigned int 不能保证在所有机器上都占32位,根据具体编译环境决定,而这个班有27个学生,因此无法保证最终结果的正确性。

练习4.27:下列表达式的结果是什么?
unsigned long ul1 = 3, ul2 = 7;
(a) ull & ul2 (b) ul1 | ul2 (c) ul1 && ul2 (d) ul1 || ul2
答:ul1 表示为 00000000 00000000 00000000 00000011
ul2 表示为 00000000 00000000 00000000 00000111
(a). ul1 & ul2 结果为00000000 00000000 00000000 00000011 即ul1的表示式
(b) ul1 | ul2 结果为00000000 00000000 00000000 00000111 即ul2的表示式
(c) true
(d) true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值