C语言中的左移操作,例如某8位寄存器为01010101,换算为十进制为85,左移一位操作后为10101010 = 170

问题描述:

C语言中的左移操作,例如某8位寄存器为01010101,换算为十进制为85,左移一位操作后为10101010 = 170,左移
之后相当于乘2,如果再左移1位之后为01010100 = 84,所以不能是左移1位就是乘2,而是在舍弃的高位中没有1时才成立
1个回答 分类:综合 2014-11-03

问题解答:

我来补答
对,8位寄存器,最高位为0时,左移1位才是乘2.
8位寄存器:
01010101,换算为十进制为85,左移一位操作后为
10101010 = 170,再左移一位操作后为
(1)01010100 = (256) + 84 = 340.
最高位的1,被丢弃了,仅仅剩下 84.乘2就不成立了.
最高位如果是0,丢弃了,也不影响什么.乘2就成立.
 
 
展开全文阅读
剩余:2000
上一页:一道物理提题