【发布时间】:2020-11-27 06:58:50
【问题描述】:
我知道如果我想做 2n 那么我可以做(0x1ul << n) 并且我会得到结果。
如果处理器是大端的怎么办?如果我向左移动,会不会导致错误的输出?当我们有一个大端架构时,(0x1ul << n) 是否会出错,即不等于 2n?我如何证明这一点?
【问题讨论】:
-
在 C 中,
^是 XOR 运算符,所以一般(0x1ul << n) != 2^n与字节序无关。 -
@tannoyconnect 编译器负责低端架构细节,如果架构不是小端架构,编译器会进行调整。
标签: c embedded endianness microprocessors