5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【初心者】Java質問・相談スレッド92【大歓迎】

143 :デフォルトの名無しさん:2006/11/25(土) 04:08:55
>>142
Java には符号無し整数は無い。byte 型も符号付きとなる。
したがって byte で扱えるのは -128 以上 127 以下の値となる。

また、0x00, 0x01, ..., 0x4F, ..., 0xFF のようなリテラル値は int として
あつかわれる。

ここで 0x00 や 0x4Fのように、そのリテラルの値が -128 から 127
の範囲にあれば、byte 型の変数に代入しようとしたときに、問題なく
キャストできるからいいけど、たとえば 0xFF (10進で 255) のように
byte で表すことができない範囲にある値だと、int から byte にする
ときに精度が落ちるからエラーになる。

ともかく Java の byte は符号付きだという点を理解してほしい。
そのうえでなお
byte[] b = { 0x00, 0xFF, 0xEE, 0xFF }; // これはエラー
のように書きたいのであれば、
byte[] b = { 0x00, (byte)0xFF, (byte)0xEE, (byte)0xFF };
というふうに明示的にキャストする。

29 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)