代码之家  ›  专栏  ›  技术社区  ›  Rui Nian

是否可以使用32位系统对16位数字进行XOR运算?

  •  0
  • Rui Nian  · 技术社区  · 6 年前

    我试图在32位系统上执行逐位XOR运算,其中两个数字都是16位小数(以10为基数)。

    然而,在32位系统中可输入的最大无符号整数是4294967295。我的背景不是真正的计算理论。即使我的系统是32位的,我仍然可以使用两个16位数字进行XOR运算吗?

    如果没有,我认为唯一的方法就是编写自己的XOR运算?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Gene    6 年前

    如果你使用64位整数类型的语言,那么它可能会处理将64位操作映射到32位指令的细节。例如,在C中:

    #include <stdio.h>
    #include <inttypes.h>
    
    uint64_t xor2(uint64_t a, uint64_t b) {
        return a ^ b;
    }
    
    int main(void) {
        uint64_t a = 1234567890123456;
        uint64_t b = 9876543210654321;
        printf("%" PRIu64 " + %" PRIu64" = %" PRIu64, a, b, xor2(a, b));
        return 0;
    }
    

    您可以查看32位ARM编译器对此的作用 here .