算術移位是對數字進行乘法或除法的一種方法。算術移位通常是在二進制數上進行的。然而,這個概念適用于任何一種編號方案。下面是一個使用十進制數字(以10為基數)的例子。當250被算術地移位到左邊的結果是2500,它是250乘以...
算術移位是對數字進行乘法或除法的一種方法。算術移位通常是在二進制數上進行的。然而,這個概念適用于任何一種編號方案。下面是一個使用十進制數字(以10為基數)的例子。當250被算術地移位到左邊的結果是2500,它是250乘以10。當250用4位數字表示為0250時,算術右移得到的數字是0025,它是250除以10。因此,更正確的說法是算術移位是一種將數字乘以或除以數字方案的基數的方法。二進制數字以2為基數;它們用0和1表示,可以有符號或無符號。在算術左移中,數字左移一個空格零放在右邊。算術右移時,數字向右移動一個空格,最左邊的數字保留在左邊。一般來說,移位可用于“n”空格。在無符號二進制數中,每個位置都是2的冪次方,因此二進制1是十進制1,二進制10是十進制2,二進制100是十進制4,和,依此類推。so 0110是十進制6。當執行算術左移時,得到的數字是1100,即十進制12。當執行算術右移時,得到的數字是0011,即十進制3。由于數字可以是正數和負數,所以使用有符號二進制數,其中最左邊的位是0正數或零,1代表負數。因此,對于4位數字,0111(十進制數7)是最大的正數。最常用于負數的方案是1111作為十進制-1,這一直到1000,即十進制-8。例如,1101的算術左移,即十進制-3,結果是1010,即十進制-61010的算術右移是十進制-6,結果是1101,即十進制-3。請注意,最左邊的位被保留了。算術移位并不總是對應于數字方案中每個數字的乘法和除法。數字方案的兩端都有限制。例如,左0111移位,十進制7,得到十進制-2,而1111右移十進制-1,得到十進制-1。算術移位具有固有的簡單性,移位比普通的乘法和除法快得多。因此計算機使用一種稱為移位單元或移位寄存器的相對簡單的機制來支持這種操作精明的程序員只要避免或注意到上述限制就可以使用此操作
-
發表于 2020-08-06 11:24
- 閱讀 ( 1770 )
- 分類:電腦網絡