Я работаю с контроллером pic32mx и использую компилятор C32 toolsuite v2.02 и MPLAB-X IDE v 3.05. Я использую побитовую операцию с длинной длинной переменной, но получаю ошибочный результат.
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 должны быть равны.
Пожалуйста, предложите мне лучший способ для этой операции. если в приведенной выше процедуре есть какая-либо ошибка, предложите правильный путь.
%llu
со значениями со знаком. Я сомневаюсь, что это вызовет эту ошибку. - person interjay   schedule 08.04.2016LL
, чтобы помочь компилятору увидеть, что это константаlong long
? - person tofro   schedule 08.04.2016long long
. - person Andrew Henle   schedule 08.04.2016