数値の変換・キャスト・基数

Java

  • 16進表記は 0x で始める。8進表記は 0 で始める。2進表記はできない。※うろ覚えです
Integer.parseIntメソッド(後述)で基数を2とすれば変換できるそうです。
int val2  = Integer.parseInt("01111111", 2);    //2進数「01111111」
int val8  = 0177;    //8進数「177」
int val16 = 0x7f;    //16進数「7f」
  • 16進表記は大文字小文字両方可。
  • プリミティブ型からプリミティブ型への変換は、()でキャストする。
double d = 0.5;
int i = (int)d;
  • 整数→実数はキャストなしでも変換される。逆はコンパイルエラー。
int i;
double d;
d = i; // ok.
i = d; // エラー。キャストまたは小数点以下処理した後キャストする必要がある。
i = (int)Math.ceil(d); //ceilの返り値も実数
念のため(自分のため)クラスmathの表をリンク
  • byte→int は符号が受け継がれる
byte b = -1; //16進では 0xff
int i = b; //16進では 0xffffffff。0x000000ff にはならない。(正の256になってしまう)
int i = ((int)b) & 0xff; //byte を符号無しのデータとして扱った上で int に持っていきたい場合はこうする。

参照

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年06月13日 11:22