uint8_t a=1;uint16_t b=a+1<<13, b多少
时间: 2024-05-28 12:14:31 浏览: 262
8-13算法B1
根据运算符优先级,先执行位运算符 `<<`,然后再执行加法运算符 `+`。而在 C 语言中,整型提升规则会将所有的整型表达式的类型提升为其中最宽的类型。因此,在 `a+1` 中,`a` 会被提升为 `int` 类型,结果为 `2`。然后 `1 << 13` 会得到二进制数 `0b10000000000000`,转换为十进制为 `8192`。因为 `b` 的类型是 `uint16_t`,所以 `int` 类型的结果 `2` 会被截断为 `uint16_t` 类型,即 `0x0002`。最后将这个结果加上 `8192`,即 `0x2002`,也就是 `8194`。因此,`b` 的值为 `8194`。
阅读全文