当前位置:首页>维修大全>综合>

汇编移位指令算术右移指令为什么相当于除以2. 如 1001 0110右移1位就是 1100 1011. 并没有除2啊(汇编语言怎么把两个寄存器相减)

汇编移位指令算术右移指令为什么相当于除以2. 如 1001 0110右移1位就是 1100 1011. 并没有除2啊(汇编语言怎么把两个寄存器相减)

更新时间:2024-06-12 16:17:30

汇编移位指令算术右移指令为什么相当于除以2. 如 1001 0110右移1位就是 1100 1011. 并没有除2啊

首先,10010110右移1位怎么会是11001011?应该是01001011才对(前面补0)

右移接近于除以2,,其原理也很简单:

2进制转换为10进制,是数字*2^加权

如10010110=1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2^1+0*2^0

右移1位以后为1001011=1*2^6+0*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0

相当于所有的加权都-1,则相当于除以2

补充,你那种最高位保留的,最高位是作为符号位的,所以保留,实际数值是后面的7位,如10010110,则右移后为10001011,也是要补个0的

更多栏目