相关疑难解决方法(0)

左右移位负整数是否定义了行为?

我知道,正确移位负签名类型取决于实现,但是如果我执行左移怎么办?例如:

int i = -1;
i << 1;
Run Code Online (Sandbox Code Playgroud)

这个定义明确吗?

我认为该标准没有说明带有签名类型的负值

如果E1具有带符号类型和非负值,并且E1×2 E2在结果类型中可表示,那么这就是结果值; 否则,行为未定义.

它只阐明如果结果在签名类型中无法表示,则行为未定义.

c++ bit-shift undefined-behavior

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

bit-shift ×1

c++ ×1

undefined-behavior ×1