对 uint8_t 做取反或移位,为什么结果常常不是 8 位?
小于 int 的整数类型参与大多数算术和位运算前会先做整数提升,因此 `~value` 通常得到 int 宽度的结果。应先在提升后的类型中计算,再用明确掩码或经过范围验证的转换取得目标位宽。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
小于 int 的整数类型参与大多数算术和位运算前会先做整数提升,因此 `~value` 通常得到 int 宽度的结果。应先在提升后的类型中计算,再用明确掩码或经过范围验证的转换取得目标位宽。