ARM中算数右移和逻辑右移区别
时间: 2023-12-12 19:04:47 浏览: 177
ARM.rar_ARM 指令集_arm指令集 中文_arm算数指令
算数右移和逻辑右移都是将二进制数向右移动指定的位数,但它们的区别在于移动符号位的处理方式不同。
算数右移是指在二进制数的右侧填充0,并且将符号位也一起向右移动。因此,算数右移后得到的结果仍然是一个有符号数。例如,将-10算数右移2位,结果为-3,因为-10的二进制表示是11110110,算数右移2位后得到的结果是11111101,换算成十进制就是-3。
逻辑右移是指在二进制数的右侧填充0,不考虑符号位的影响。因此,逻辑右移后得到的结果仍然是一个无符号数。例如,将-10逻辑右移2位,结果为1073741821,因为-10的二进制表示是11110110,逻辑右移2位后得到的结果是00111101 01100000 00000000 00000011,换算成十进制就是1073741821。
因此,在ARM中,算数右移和逻辑右移的区别在于是否考虑符号位的影响,而最终的结果也会有所不同。
阅读全文