左移運算子(<<)表示將乙個數的二進位制值向左移動指定的位數,尾部補0,即乘以2的指定次方(最高位即符號位不參與移動)。
// 4 的二進位制形式為100,
// 左移一位為1000(即十進位制的8)
// 相當於乘以2的1次方
4 << 1
// 8
-4 << 1
// -8
上面**中,-4左移一位得到-8,是因為-4的二進位制形式是11111111111111111111111111111100,左移一位後得到11111111111111111111111111111000,該數轉為十進位制(減去1後取反,再加上負號)即為-8。
如果左移0位,就相當於將該數值轉為32位整數,等同於取整,對於正數和負數都有效。
13.5 << 0
// 13
-13.5 << 0
// -13
左移運算子用於二進位制數值非常方便。
var color = ;
// rgb to hex
// (1 << 24)的作用為保證結果是6位數
var rgb2hex = function(r, g, b)
rgb2hex(color.r, color.g, color.b)
// "#bada55"
左移運算子和右移運算子
左移操作 規則 右邊空出的位用0填補 高位左移溢位則捨棄該高位。例如 10 的二進位制為 0000 1010 那麼10左移3為就是 0101 0000,結果就是80.10 3 80 右移操作 規則 左邊空出的位用0或者1填補。正數用0填補,負數用1填補。注 不同的環境填補方式可能不同 低位右移溢位則...
左移運算子過載
1.作用 可以輸出自定義資料型別,比如輸出乙個類物件。includeusing namespace std include 左移 運算子過載 class person private 加入利用成員函式過載左移運算子 p.operator cout 簡化版本 p void operator cout ...
左移右移運算子(2)
先看如下一段左移右移的 及其結果 include stdio.h char leftshift char i,int n int main 結果 127 1 2 127 2 4 127 3 8 127 4 16 127 5 32 127 6 64 127 7 128 127 8 0 1 1 2 1 ...