0

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

... このような。

ありがとう。

4

2 に答える 2