二进制运算100 * 2 << 20的十进制结果是多少?左操作数运算规则说明
关于
100 * 2 << 20表达式的运算逻辑与结果说明 运算优先级说明
在遵循通用C系运算符优先级规则的编程语言中,乘法运算符*的优先级高于左移运算符<<,因此该表达式会先完成左半部分乘法运算,再将运算结果作为左操作数执行移位操作。
左操作数运行逻辑
- 左操作数由
100 * 2计算获得,为标准整数乘法运算,计算结果为200,该值会作为后续左移操作的输入参数 - 左移运算的核心逻辑为:将左操作数的二进制形式整体向左移动指定位数,右侧空缺位统一补0,在数值未超出当前整数类型溢出上限的前提下,左移n位等价于将左操作数乘以2的n次方
最终十进制结果
计算过程如下:
- 先算乘法部分:
100 * 2 = 200 - 左移20位等价于乘以220,220的十进制值为1048576
- 最终结果:
200 * 1048576 = 209715200
内容的提问来源于stack exchange,提问作者wkargul
相关产品推荐
相关产品推荐

