c - long long pic32 按位运算错误

标签 c microcontroller pic pic32

我正在使用 pic32mx Controller 并使用 C32 工具套件 v2.02 编译器和 MPLAB-X IDE v 3.05。 我对 long long 变量使用按位运算,但得到了错误的结果。

int main()

{

    long long data0, data1=0;

    data0 = 489631651402;
    data1 = data0 & 0x0FFFFFFFFFF;

    printf("%llu\n%llu\n", data0, data1 );

    return 0;
}

输出:

    489631651402

    492260348528

根据计算,这个结果是错误的。 data0 和 data1 必须相等。

请为我提供更好的操作方法。以上过程如有错误请指出正确路径。

最佳答案

如果您需要所有位的掩码,请使用 ULLONG_MAX 作为常量。如果您只需要屏蔽这 48 位,请使用 0x0FFFFFFFFFFLL

关于c - long long pic32 按位运算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36496856/

相关文章:

c - 什么决定了顺序变量保存在内存中?

c - 在 c11 中支持 BitSet

c - Makefile 只执行一次命令

c - 为什么这个 C vector 循环不自动向量化?

c - STM Nucleo I2C 未发送所有数据

c++ - 当我使用这种 RAII 风格的模式时,对象本身是否被优化了?

c - 如何计算#define 中的逗号

c - 如何创建一个计时器/时钟,它可以将其值发回,存储在一个变量中,仅在 C 和 mikroC 上延迟

c - 当 mps430 uC 启用或禁用时,上拉电阻会影响按钮吗?

c - 如何在 8 个 LED 的电路板上以二进制计数 - PIC