<<:是邏輯左移,右邊補(bǔ)0充蓝,符號(hào)位和其他位一樣要移動(dòng)喉磁。
例如: 3 << 2,則是將數(shù)字3左移2位
計(jì)算過(guò)程:3 << 2
? 首先把3轉(zhuǎn)換為二進(jìn)制數(shù)字0000 0000 0000 0000 0000 0000 0000 0011涝焙,然后把該數(shù)字高位(左側(cè))的兩個(gè)零移出孕暇,其他的數(shù)字都朝左平移2位,最后在低位(右側(cè))的兩個(gè)空位補(bǔ)零隧哮。則得到的最終結(jié)果是0000 0000 0000 0000 0000 0000 0000 1100沮翔,則轉(zhuǎn)換為十進(jìn)制是12.數(shù)學(xué)意義:
? 在數(shù)字沒有溢出的前提下,對(duì)于正數(shù)和負(fù)數(shù)疲牵,左移一位都相當(dāng)于乘以2的1次方纲爸,左移n位就相當(dāng)于乘以2的n次方璧眠。
<<??? ? : 左移運(yùn)算符责静,num << 1 相當(dāng)于num乘以2
>>? ? ? :? ? 右移運(yùn)算符灾螃,num >> 1? 相當(dāng)于num除以2
比如num是40 (10進(jìn)制)? 對(duì)應(yīng)的二進(jìn)制為: 101000 = 2的5次方x1+2的4次方x4+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0 (二進(jìn)制轉(zhuǎn)換為十進(jìn)制方法原始方法)
<<? ? 左移一位(左移一位是相對(duì)于二進(jìn)制來(lái)說(shuō)的腰鬼,如果是十進(jìn)制數(shù)轉(zhuǎn)為二進(jìn)制后左一位后在轉(zhuǎn)為十進(jìn)制數(shù))
過(guò)后對(duì)應(yīng)的二進(jìn)制:1010000 = 2的6次方x1+2的5次方x4+2的4次方x1+2的3次方x0+2的2次方x0+2的1次方x0+2的0次方x0
= (2的5次方x1+2的4次方x4+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0)x2=40x2
同樣熄赡,如果左移兩位就是2的平方齿税,3位2的3次方···凌箕,這樣推算結(jié)果就是左移幾位就是原來(lái)的十進(jìn)制數(shù)乘以2的多少次方,比如40左移3位
結(jié)果就是40x2的3次方? =? 320?
右移就是除以2串绩,哈哈芜壁,自己推算啦高氮。這樣有助于記憶纫溃。