2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
1、 c >> 16 = 0x1AF034 >> 16 = 0x00001A 0x00001A & 0x00FFFF = 0x00001A = 26 2、 c & 0x0000FF = 0x1AF034 & 0x0000FF = 0x000034 = 52 位移運(yùn)算就是將數(shù)字的二進(jìn)制形式按指定的位數(shù)左移或右移,因?yàn)槭M(jìn)制的每位數(shù)可以化成一個(gè)四位數(shù)的二進(jìn)制的數(shù)字(2的四次方為16),所以在二進(jìn)制中移動(dòng)16位就是在十六進(jìn)制中移動(dòng)16/4 = 4位,那么0x1AF034 >> 16 = 0x00001A 按位且(&)這個(gè)運(yùn)算符,這個(gè)運(yùn)算符的意思是將數(shù)字轉(zhuǎn)為二進(jìn)制逐位進(jìn)行且比較,按照1且1為1,1且0為0,0且0為0的規(guī)則,這樣拆開來運(yùn)算后再整合為結(jié)果 其實(shí)有個(gè)快捷方法,還是因?yàn)槭M(jìn)制的每位數(shù)可以化成一個(gè)四位數(shù)的二進(jìn)制的數(shù)字(2的四次方為16),而且0x0 = 0000B,0xF = 1111B,也就是說如果對(duì)應(yīng)位上數(shù)是F,那么這位上的數(shù)可以保留,否則變?yōu)?,如上面的0x0000FF & 0x1AF034,你可以看到前面的數(shù)字只有個(gè)位和十位上有數(shù)字,所以只保留后面數(shù)字的個(gè)位和十位就是結(jié)果,那么就是0x000034 = 52了
1 |

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
1、
c >> 16 = 0x1AF034 >> 16 = 0x00001A
0x00001A & 0x00FFFF = 0x00001A = 26
2、
c & 0x0000FF = 0x1AF034 & 0x0000FF = 0x000034 = 52
位移運(yùn)算就是將數(shù)字的二進(jìn)制形式按指定的位數(shù)左移或右移,因?yàn)槭M(jìn)制的每位數(shù)可以化成一個(gè)四位數(shù)的二進(jìn)制的數(shù)字(2的四次方為16),所以在二進(jìn)制中移動(dòng)16位就是在十六進(jìn)制中移動(dòng)16/4 = 4位,那么0x1AF034 >> 16 = 0x00001A
按位且(&)這個(gè)運(yùn)算符,這個(gè)運(yùn)算符的意思是將數(shù)字轉(zhuǎn)為二進(jìn)制逐位進(jìn)行且比較,按照1且1為1,1且0為0,0且0為0的規(guī)則,這樣拆開來運(yùn)算后再整合為結(jié)果
其實(shí)有個(gè)快捷方法,還是因?yàn)槭M(jìn)制的每位數(shù)可以化成一個(gè)四位數(shù)的二進(jìn)制的數(shù)字(2的四次方為16),而且0x0 = 0000B,0xF = 1111B,也就是說如果對(duì)應(yīng)位上數(shù)是F,那么這位上的數(shù)可以保留,否則變?yōu)?,如上面的0x0000FF & 0x1AF034,你可以看到前面的數(shù)字只有個(gè)位和十位上有數(shù)字,所以只保留后面數(shù)字的個(gè)位和十位就是結(jié)果,那么就是0x000034 = 52了
- 2 回答
- 0 關(guān)注
- 1051 瀏覽
添加回答
舉報(bào)