2

我正在使用 pic32mx 控制器并使用 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 必须相等。

请建议我对此操作有更好的方法。如果上述过程有任何错误,请提出正确的路径。

4

1 回答 1

-1

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

于 2016-04-08T10:07:48.190 回答