左移運算子

2021-09-24 03:32:56 字數 696 閱讀 5423

左移運算子(<<)表示將乙個數的二進位制值向左移動指定的位數,尾部補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 ...