C语言中的左移操作,例如某8位寄存器为01010101,换算为十进制为85,左移一位操作后为10101010 = 170,左移之后相当于乘2,如果再左移1位之后为01010100 = 84,所以不能是左移1位就是乘2,而是在舍弃的高

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 12:12:50
C语言中的左移操作,例如某8位寄存器为01010101,换算为十进制为85,左移一位操作后为10101010=170,左移之后相当于乘2,如果再左移1位之后为01010100=84,所以不能是左移1位

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

C语言中的左移操作,例如某8位寄存器为01010101,换算为十进制为85,左移一位操作后为10101010 = 170,左移之后相当于乘2,如果再左移1位之后为01010100 = 84,所以不能是左移1位就是乘2,而是在舍弃的高
对,8位寄存器,最高位为0时,左移1位才是乘2.
8位寄存器:
01010101,换算为十进制为85,左移一位操作后为
10101010 = 170,再左移一位操作后为
(1)01010100 = (256) + 84 = 340.
最高位的1,被丢弃了,仅仅剩下 84.乘2就不成立了.
最高位如果是0,丢弃了,也不影响什么.乘2就成立.