C で unsigned long long 変数に値を代入すると、変数の値が正しく代入されません。コードは次のとおりです。
#include <stdio.h>
int main()
{
unsigned long long x;
printf("%d\n\n",sizeof(x));
x=0xAAAAAAAAAAAAAAAAULL;
printf("%u\n\n",x);
printf("%ld\n\n",x);
return 0;
}
変数の右端 32 ビットは無視されます。誰かがこれを正しく行う方法を教えてください。