位運算相關
阿新 • • 發佈:2017-05-16
使用 優化 lin 位數 pan ble 移位 移動 等於
位運算符/移位運算符
運算符
-
&運算符
操作數1的位 操作數2的位 &的結果位 1 1 1 1 0 0 0 1 0 0 0 0 -
|運算符
操作數1的位 操作數2的位 &的結果位 1 1 1 1 0 1 0 1 1 0 0 0 -
^運算符
操作數1的位 操作數2的位 ^的結果位 1 1 0 1 0 1 0 1 1 0 0 0 -
~運算符
操作數的位 ~的結果位 1 0 0 1
移位運算符
-
原因:
主要用於高度優化的代碼,在這些代碼中,使用其他數據操作的開銷太高了 -
示例:
int var1, var2 = 10
- 結果:
var1 = 40。
具體過程如下:10的二進制值是1010,把該數值向左移動兩位,得到0010 1000,即十進制中的40 - 快速記憶
向左位移:等於當前的值乘以移動位數再乘以2
var1 = var2 << var3; var1 = var2 * var3 * 2 // var1 = 10 * 2 * 2 = 40
向右位移:等於當前的值除以移動位數再除以2,最後舍去非整數部分
var1 = var2 >> var3; var1 = var2 / (var3 * 2) // var1 = 10 / ( 2 * 2) = 2.5// 然後小數部分被丟棄var1 = 2 // 向右位移操作的時候非整數部分直接丟棄
位運算相關