gpt4 book ai didi

c++ - 隐式类型转换在赋值过程中何时发生

转载 作者:行者123 更新时间:2023-11-30 02:58:40 25 4
gpt4 key购买 nike

如果得到如下代码:

uint8_t value   = 0xF0;
uint16_t shift = 0x10;
uint32_t result = value << shift;

cout << "The Result is: " << result << endl;

我预计输出为 0,但实际上是 15728640。

我的问题

  • 不是表达式求值 => 0 然后隐式转换结果的类型?
  • 这种行为标准吗?
  • 我在哪里可以获得有关此类行为的更多信息?

最佳答案

当你写 value << shift , value隐式转换为 int换类前。这称为“整数提升”。没有其他规则适用于这种特殊情况。

整数提升适用于范围在 int 范围内的任何类型.如果它放不下 int , 然后 unsigned int被试过了。如果两者都不适合,则整数提升不会执行任何操作。

有关更多信息...好吧,我刚刚阅读了规范。

关于c++ - 隐式类型转换在赋值过程中何时发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com