a. 0000 0011
b. 0000 1101
c. 0011 1011
d. 01110111
a. 21, 025, 0x15
b. 85, 0125, 0x55
c. 76, 0114, 0x4c
d. 157, 0235, 0x9D
a. 252
b. 2
c. 7
d. 7
e. 5
f. 3
g. 28
a. 255
b. 1 (not false is true)
c. 0
d. 1 (true and true is true)
e. 6
f. 1 (true or true is true)
g. 40
掩码的二进制是 111 1111, 十进制是127, 八进制是 0177, 十六进制是0x7F
bitval * 2 和 bitval << 1 都把bitval当前的值增加一倍, 它们是等效的。
但是mask += bitval和 mask != bitval 只有在bitval和mask没有同时打开的位时效果才相同。
例如, 2 | 4 得 6, 3 | 6得 7
a.
struct tb_drives
{
unsigned int diskdrives : 2;
unsigned int : 1;
unsigned int cdromdrives : 2;
unsigned int : 1;
unsigned int harddrives : 2;
}
b.
struct kb_drives
{
unsigned int harddrives : 2;
unsigned int : 1;
unsigned int cdromdrives : 2;
unsigned int : 1;
unsigned int diskdrives : 2;
}