プログラマの卵:備忘録

備忘録です。メモ代わりですが、少しでも皆様の役に立てば幸いです。

【Java】型変換の不思議:データ型(byte ~ long) ⇔ char型

データ型からchar型にcastについてまとめる。

データ型(プリミティブ型)について

※byte ~ long & charまでを紹介する。

データ型 値の種類 ビット数 格納できる範囲
byte 整数値 8ビット -128 ~ 127
short 整数値 18ビット -32,768 ~ 32,767
int 整数値 32ビット -2,147,483,648 ~ 2,147,483,647
long 整数値 64ビット -9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807
char 文字   16ビット 0 ~ 65,535
Unicode文字、\u0000~\uffff

castの実例

        int num1 = 12354;
        System.out.println((char)num1); // 実行結果:あ

        char num2 = 12356; // データ型のため直接代入も可能
        System.out.println(num2); // 実行結果:い

上記のように格納したのは整数値のはずなのに、 char型で出力すると文字列に変換されて出力される。

この理由はJavaで使用されている文字コードUnicodeのため、 文字としてではなくその実、すべて数字として格納されているため上記のような結果となる。

さらに面白いのはデータ型のため四則演算が可能である。

        char num1 = 12354;
        char num2 = 12356;
        System.out.println(num1 + num2);         // 実行結果:24710
        System.out.println((char)(num1 + num2)); // 実行結果:悆

いろいろな文字を組み合わせて遊んでみるのも楽しいかもしれません。

以上。