計算機中二進位制的移位運算

2021-09-11 04:44:09 字數 1231 閱讀 2543

高位左移後溢位,捨棄:

如:

<

例如:左移1位

>>:有符號右移    右移是將乙個二進位制運算元物件按指定的移動位數向右移,右邊溢位的位數被丟棄,正數時左邊的空位用0補充,負數時則左邊的空位用1補充。右移相當於除以2的冪次。將乙個運算物件的各二進位制位全部右移若干位,正數左補0,負數左補1.

例如:又移1位

高位左移後溢位,捨棄。

左移一位相當於該數乘以2,左移2位相當於該數乘以2^2=4。上面舉的例子15<< 2=60,即乘了4。但此結論只適用於該數左移時被溢位捨棄的高位中不包含1的情況。

例如,假設以乙個位元組(8位)存乙個整數,若a為無符號整型變數,則a=64,即二進位制數01000000時,左移一位時溢位的是0。而左移2位時,溢位的高位中包含1,則不符合上述結論。

由下表可以看出,若a的值為64,在左移一位後相當於乘2,左移2位後,值等於256(100000000 是9位,255是:11111111 8位)。

這時候:

<<1左移一位相當於 64*2 =128沒有超出255 ,所以此時直接右邊直接補0即可<<2左移2位就相當於64*2*2 = 256 超出了255的範圍,所以此時超出255的就採取左邊的二進位制丟棄,右邊補0a的值a的二進位制形式a<<1

a<<2

64

01000000

10000000

00000001,00000000

127

01111111

11111110

00000001,11111100

計算機中為什麼使用二進位制

answer 將計算轉換成邏輯判斷 經典例題 100桶飲料,其中有一桶是有毒的,喝了肚子會難受,二十分鐘後恢復,請問最少需要多少測試人員才能確定有毒的桶的位置?答 7個人 解析 使用二進位制的來思考,首先飲料是否有毒為兩種情況,符合邏輯判斷0和1,遂將100轉換為二進位制 1 1 0 0 1 0 0...

演算法中二進位制運算的應用

def subset nums 通過二進位制數的特性,求給定集合的子集 param nums return n len nums res for i in range 2 n cur for j in range n if i 2 j 2 j return res def exchange x,y ...

計算機二進位制計算過程

原文 原碼,補碼和反碼 wqbin cnblogs.com 1.原碼,反碼,補碼的基礎概念和計算方法.1 00000001 原 00000001 反 1 10000001 原 11111110 反 補碼補碼的表示方法是 1 00000001 原 00000001 反 00000001 補 1 100...