NOT ( ~ )
演算子を使用して整数のバイナリ値を逆にしたいだけですが、このようにしていたとき
struct rev
{
unsigned i:3; //for only 3 bits means 000 to 111
};
r.i = 5;
printf(" Reverse of %d = %u \n",r.i,~(r.i));
それは私に与えていたReverse of 5 = 4294967290
しかし、Reverse of 5 = 2
私は3ビットを使用しているので、そうしない場合、5は2に変更されますが、このように表示されていませんでしたfffffffa
.理由がわからないので、結果が得られました.
私が欲しいのは、NOT演算子を介してのみ1と0を交換することです。私が欲しい
0 - 7
1 - 6
2 - 5
... このような。
ありがとう。