算术移位是对数字进行乘法或除法的一种方法。算术移位通常是在二进制数上进行的。然而,这个概念适用于任何一种编号方案。下面是一个使用十进制数字(以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
- 阅读 ( 1873 )
- 分类:电脑网络