2

私のビット マスクはバイトなので、そのまま保持したいのですが、符号が拡張されていると思います。同じビットが設定されている限り、バイトが正または負と見なされるかどうかは気にしません。コードのデバッグに数時間を費やしたところ、たまたま負のバイトビットマスクに問題があるだけであることがわかりました。見つけるのに時間がかかりました。これに問題を抱えているのは私だけではありません。バイトを符号なしのように動作させる方法はありますか?

4

2 に答える 2

5

バイトを算術 (またはビット単位) 演算子で使用するときにバイトを符号拡張したくない場合は、0xFF を使用して明示的にビット単位で AND する必要があります。少し醜いように見えますが、持っているものが a である場合は避けられませんbyte(うまくいけば、まともな JIT がイディオムを認識し、それから効率的なコードを作成できるようになります)。

于 2011-08-07T22:54:04.370 に答える
1

コードに右シフトがありますか? 「>>>」の代わりに「>>」を使用しますか? あなたの問題があります。

于 2011-08-07T22:54:18.553 に答える