这与一份作业有关,但不是作业本身。
我很难理解在编译到大端机器和小端机器时,按位取反(C 中的 ~
)对有符号整数和无符号整数的影响是否有所不同。
字节是否真的“颠倒了”,如果是这样的话,按位取反(及其他运算符)会导致在不同类型的机器上生成不同的结果。
顺带一提,在 C 中,每个按位运算符的答案都是相同的吗?还是很大程度上取决于具体情况?
我所指的运算符包括:
~ /* bitwise Not */
& /* bitwise And */
| /* bitwise Or */
^ /* bitwise Exclusive-Or */
提前感谢您!
更新:在阅读到目前为止我的回答时,我感到有必要问一下按位非运算符是否会影响signed int
的符号位。我有点困惑,因为我忘记了所有这些愚蠢的事情。Adam似乎在说所有值都被视为无符号。符号位是否重新应用,还是曾经带符号的值变成了无符号?