我正在使用pic32mx控制器并使用C32 tooluite v2.02编译器和MPLAB-X IDE v 3.05。 我正在使用long long变量的位操作,但得到了错误的结果。long long long bitwise operation error pic32
int main()
{
long long data0, data1=0;
data0 = 489631651402;
data1 = data0 & 0x0FFFFFFFFFF;
printf("%llu\n%llu\n", data0, data1);
return 0;
}
OUTPUT:
489631651402
492260348528
根据计算该结果是错误的。 data0和data1必须相等。
请给我建议这个操作的更好方法。如果在上述程序中有任何错误,请建议正确的路径。
您是否看过生成的汇编代码? –
所以当你按位时它的数量变得更大*而且它是一个常数?嗯...这通常不是很可能。我建议你仔细检查一下,为什么不用十六进制打印数字,使它们稍微容易理解?再加上约阿希姆在他删除的答案中所说的话,不知道为什么这些消失了。 – unwind
我用这段代码看到的唯一问题是使用具有有符号值的'%llu'说明符。我怀疑这会导致这个错误。 – interjay