1

a と b (どちらも 10 進数) の間で "AND" 演算を実行したいと考えています。b の値はコード内で決定されます。その結果、次のように sth を書くと:

String g= Integer.toHexString(b);
int k=a & g;

次のように sth する必要があるため、エラーが発生します。

int k=a & 0xFF;

どういうわけか 0x は 16 進値の前にある必要があり、同時に String 型にすることはできません。2番目のオペランドが変数になる可能性がある場合のインターネットの例は見つかりませんでした。AND 演算をビットごとに適用する for ループを手動で作成する必要がありますか、それとも簡単な解決策がありますか? 私はあなたの助けに感謝します。

4

3 に答える 3

6

b がすでに整数の場合、コードは次のようになります。

int k = a & b;

数は数です数です。人間による0xFFvsの表現は255、& 演算子にはまったく違いがありません。コンピュータには「16 進数の整数」と「10 進数の整数」のようなものはなく、単なる値です。それを書くさまざまな方法は、人間の側にあります。

于 2012-12-20T22:42:27.167 に答える
3

これを行うだけです:

int k = a & b;

演算子intを適用する前に an を 16 進数に変換する必要はありません。によって返される値はであり、演算子は整数に対してのみ機能する&ため、実際にはエラーです。toHexString()String&

于 2012-12-20T22:42:57.360 に答える