サイズ2,3または4のバイト配列があります。これを正しい整数値に変換する必要があります。また、これを逆に行う必要があります。つまり、バイト配列に対して2,3または4文字の整数です。US-ASCIIでエンコードされたバイトを整数に変換して戻す
例えば、生の進バイトがある:54と49デコードされた文字列US-ASCII値は61であるので、整数の答えは、私はstackoverflowのなどそのI上のすべての変換の質問を読んだ61
にする必要があります見つけることができますが、彼らはすべて完全に間違った答えを与える、私はそれがエンコードすることができるかどうかわからない?
new String(lne,"US-ASCII")
の場合、lne
は私のバイト配列ですが、正しい61が得られます。しかし、このとき((int)lne[0] << 8) | ((int)lne[1] & 0xFF)
を実行すると、完全に間違った答えが表示されます。
これは愚かな間違いかもしれませんが、私はJavaの数表現スキームとエンコーディング/デコードの考え方を完全に理解していません。
ご協力いただければ幸いです。
注:文字列を整数に解析することはできますが、代わりにシフト演算やバイナリ演算などの高速演算を使用する方法があるかどうかを知りたいと思いますか?