这与作业分配有关,但这不是作业分配。关于小端和大端的按位非操作符(〜C)
我很难理解在大端机器和小端机器上编译时,如果不按比特(~
in C)会影响signed int
和unsigned int
是否有差异。
是字节真“向后”,如果不这样的按位不(和其他经营者)引起不同所得int
小号根据机器类型来生产?
虽然我们在这里,C中的每个按位运算符的答案都是一样的吗?还是很重要?
我指的是运营商为:
~ /* bitwise Not */
& /* bitwise And */
| /* bitwise Or */
^ /* bitwise Exclusive-Or */
预先感谢您!
更新:在阅读我迄今为止的回复时,我不得不问,按位不是否会影响signed int
上的符号位。我担心这一部分我有点困惑,因为我忘记了这一切。亚当似乎是说所有的值都被视为无符号的。签名位是否重新应用或者曾经签名的值是否被签名?
您列出的运算符是按位运算符,而不是逻辑运算符。 C中的逻辑运算是&&,||和! – sth 2009-06-24 03:26:37
按位不操作符确实会影响符号位。但是这个值不会“变”为无符号的。正如你所期望的那样,带符号的整数类型的结果是任何有符号的值都具有通过翻转输入的每一位来计算的位模式。因此,负值总是非负的,非负值的总是负值。 – 2009-06-24 18:04:03