Fra*_*k V 4 c endianness bitwise-operators
这与家庭作业有关,但这不是家庭作业.
我有困难的理解,如果有就如何按位取反(差别~在C)将受到影响signed int,并unsigned int当大端机器上对小端机编译.
字节是否真的 "向后",如果是,那么按位(和其他运算符)会导致int根据机器类型产生不同的结果吗?
虽然我们在这里,对于C中的每个按位运算符,答案是否相同,或者它是否依赖于它?
我所指的运营商是:
~ /* bitwise Not */
& /* bitwise And */
| /* bitwise Or */
^ /* bitwise Exclusive-Or */
Run Code Online (Sandbox Code Playgroud)
先感谢您!
更新:到目前为止,在阅读我的回复时,我觉得有必要问一下bitwise not运算符是否会影响a上的符号位signed int.因为我忘记了所有那些狡猾的事情,所以我担心我在这方面有点困惑.亚当似乎在说所有的价值都被视为无符号.重新应用符号位还是一次签名的值变为无符号?
按位运算符和逻辑运算符在大端和小端机器中的运行方式相同.同样,它们也在有符号和无符号数据上运行相同:结果就好像所有内容都是无符号的一样.因此,如果x和y是有符号整数,那么~x等于(int)(~((unsigned int)x)和x & y等于(int)(((unsigned int)x) & ((unsigned int)y),等等所有其他运算符.