【发布时间】:2018-08-09 21:54:56
【问题描述】:
我尝试在 C 中按位操作。这是我的代码:
int main() {
char c = 127;
c <<= 1;
if (c == 0xfe) {
printf("yes");
}
else {
printf("No");
}
return 0;
}
系统控制台打印编号。 我期望收到的是是的。 位移动后 c 中的值为 ffffffffe。 似乎系统已将 8 位更改为 32 位。谁能帮帮我。
【问题讨论】:
-
在进行按位运算时,您应该几乎总是使用无符号类型。
-
按位运算背后的机制是什么。有什么区别。你能给我推荐一些与此相关的论文吗?
标签: c type-conversion bit-manipulation integer-promotion type-promotion