初心者歓迎! Java相談室 その8
■ このスレッドは過去ログ倉庫に格納されています
0623デフォルトの名無しさん
NGNG平仮名の「あ」はShift_JISの場合先頭1byteは0x82です。
0x82は10000010なので先頭1ビットが立ってしまい、
byteからintにキャストすると-126になってしまいます。
byteを符合無しとしてintにキャストするにはどうすれば良いのでしょう?
(上の例だと-126ではなく130(0x82)になるように変換したいのです)
最初は、
byte b = (byte)0x82;
int i = 0 | b;
とか考えてみたんだけど、0とorする時に自動的にbがintにキャストされて
しまうので駄目でした。
bの最下位のビットを保存し、bを符合無し右シフトしてからintにキャストし
左シフトし直して最下位ビットを足すとかも考えたのですが美しく無いです。
僕の知らない良い方法があったら教えて下さい。
■ このスレッドは過去ログ倉庫に格納されています