私は 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 は等しくなければなりません。
この操作のより良い方法を教えてください。上記の手順にエラーがある場合は、正しいパスを提案してください。