- 左移操作: x << n
x可以是byte, short, char, int, long基本類型, n(位移量)只能是int型
編譯器的執(zhí)行步驟:
1) 如果x是byte, short, char類型, 則將x提升為int;
2) 如果x是byte, short, char, int類型, 則n被重新賦值(過(guò)程是:取n的補(bǔ)碼的低5位再轉(zhuǎn)成十進(jìn)制的int值,相當(dāng)對(duì)n取32模: n=n%32);
如果x是long型, 則n被重新賦值(過(guò)程是:取n的補(bǔ)碼的低6位再轉(zhuǎn)成十進(jìn)制的int值,相當(dāng)對(duì)n取64模: n=n%64);
(因?yàn)閕nt類型為4個(gè)字節(jié),即32位,移動(dòng)32位將沒有任何意義.對(duì)于long則是模64)
3) 對(duì)x左移n個(gè)位數(shù), 整個(gè)表達(dá)式產(chǎn)生一個(gè)新值(x的值不變); - <<是左移符號(hào),列x<<1,就是x的內(nèi)容左移一位(x的內(nèi)容并不改變)
- >>是帶符號(hào)位的右移符號(hào),x>>1就是x的內(nèi)容右移一位,如果開頭是1則補(bǔ)1,是0責(zé)補(bǔ)0,(x的內(nèi)容并不改變).
- >>>是不帶符號(hào)位的右移,x>>>1就是x的內(nèi)容右移一位,開頭補(bǔ)0(x的內(nèi)容并不改變)
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關(guān)文章:
|
||