位移,位运算符中的Endian依赖关系

Cin*_*lia 2 binary bit-shift endianness bit

处理屏蔽或从整数中提取单个位的任何操作是否取决于字节顺序?我已经编写了一些代码,但只能访问一种类型的硬件,我无法确定它的运算符是否与字节序无关.如果您发现任何错误,请告诉我.注意:此代码是为家庭作业问题和个人启发而编写的:

 void PrintDecimalIntegerInBinary (long long n) 
 {  
    PrintDecimalInBinaryRecursion(n, n >= 0);
 }

 void PrintDecimalInBinaryRecursion (long long n, bool sign) 
 {
    if (n == 0) {
        cout << (sign ? 0x0 : 0x1);
    }
    else {
        PrintDecimalInBinaryRecursion((unsigned long long)n >> 1, sign);
    cout << (n & 0x1);
    }     
 }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Way*_*Lue 5

字节顺序仅确定数据的存储方式,而不是如何处理数据.因此任何按位运算符或位移都不受字节序的影响.具体来说,0x1无论字节顺序如何,都意味着相同的事情.