我试图了解积分提升如何与算术移位运算符一起工作。特别是,我想知道,哪些值a, b, c, d, e, f, g, h
是根据 C++14 标准精确定义的,哪些值可以依赖于平台/硬件/编译器(假设sizeof(int) == 4
)。
int a = true << 3;
int b = true >> 3;
int c = true << 3U;
int d = true >> 3U;
int e = true << 31;
int f = true >> 31;
int g = true << 31U;
int h = true >> 31U;