2 回答

TA貢獻(xiàn)7條經(jīng)驗(yàn) 獲得超1個(gè)贊
我剛驗(yàn)證了一下,最后一句與驗(yàn)證不一致,應(yīng)該是我理解錯(cuò)了,注意下別被誤導(dǎo)
按照實(shí)驗(yàn)的結(jié)果,跟后面內(nèi)存的數(shù)據(jù)還有關(guān)系,所以具體c是什么結(jié)果就不一定了

TA貢獻(xiàn)7條經(jīng)驗(yàn) 獲得超1個(gè)贊
1. 假設(shè)p=a(97),二進(jìn)制表示就是0110 0001
2. p<<8,結(jié)果就是 0110 0001 0000 0000
3. 然后與b(0110 0010)或
p: 0110 0001 0000 0000
b: 0000 0000 0110 0010
或之后結(jié)果:
p: 0110 0001 0110 0010
4. d = p&oxfff就是
0000 0110 0001 0110 0010
0000 0000 1111 1111 1111
相與(只有都為1是才為1)所以之后就是:
d: 0000 0000 0001 0110 0010
5. c=(p&0xfff00)>>8
就是將p的后2個(gè)字節(jié)清零,然后右移8位
p: 0110 0001 0110 0010
與之后:
p: 0110 0001 0000 0000
右移8位
p: 0000 0000 0110 0001
這里有與的操作就相當(dāng)于釋放其不用的內(nèi)存,如果沒有與的操作,得到的c的結(jié)果是一樣的(因?yàn)?2位系統(tǒng)中整形占4個(gè)字節(jié)),不過內(nèi)存有塊就沒釋放,不與之后的場(chǎng)景(非加粗部分是c的值):
0000 0000 0110 0001 0110 0010
- 2 回答
- 0 關(guān)注
- 1434 瀏覽
添加回答
舉報(bào)