char と int の型変換 キャスト - 萌えJava超入門
第七章 基本データ型の型変換

char と int の型変換

charは整数(文字コード)ですから、整数のデータ型に変換できます。


目次

1. char の範囲とサイズ

char に近いサイズの整数データ型を確認してみましょう。

プリミティブ型の範囲とサイズ
種類データ型サイズ
byte
範囲
整数型short2
(16bit)
-32768 ~ 32767
整数型int4
(32bit)
-2147483648
~ 2147483647
文字型char2
(16bit)
0~65535(UTF-16)

char は short に暗黙的な代入はできません。
short も char に暗黙的な代入はできません。

データ型の広さの順番
char < int

char を整数にするときは
int で決まりだな。



char は shorとサイズは同じ
なんスけど。
範囲が合いませんね。


2. char から int への変換

char から int への変換は、より広い範囲のデータ型への変換です。
暗黙的な代入で型変換できます。

//Sample09_31.java
class Sample09_31 {
      public static void main(String[] args){

          char chA = 'A';
          int intA = chA;//暗黙的な代入で型変換

          System.out.println("chA = " + chA);
          System.out.println("intA = " + intA);
      }
}

コマンドライン
>javac Sample09_31.java
>java Sample09_31
chA = A
intA = 65
'A'の文字コードは 65 です。

何の問題もなく
変換されましたね。
そうだな。
charは本質的に整数型だからな。
重要
int は char の範囲を完全に網羅しています。



ちなみにこんな書き方もできる。
//Sample09_33.java
class Sample09_33 {
    public static void main(String[] args){
        int intA = 'A';//暗黙的な代入で型変換
        System.out.println("intA = " + intA);
    }
}

コマンドライン
>javac Sample09_33.java
>java Sample09_33
intA = 65
'A'の文字コードは 65 です。

暗黙的な代入って
リテラルにも有効なんすね。
そう。
文字を数値で扱いたい場合も
文字リテラルを使えば
文字コード自体を意識する必要はない。
文字コードは覚えなくていいのね!


3. int から char への変換

int から char への変換はキャスト演算子が必要です。
charの範囲を超えないように注意しましょう。

//Sample09_32.java
class Sample09_32 {

    public static void main(String[] args){
        int intF = 70;
        char chF = (char)intF;//キャスト演算子

        System.out.println("chF = " + chF);
        System.out.println("intF = " + intF);
    }
}

コマンドライン
>javac Sample09_32.java
>java Sample09_32
chF = F
intF = 70
'F'の文字コードは 70 です。

こんな書き方もできる。
//Sample09_34.java
class Sample09_34 {
    public static void main(String[] args){

        char chF = (char)70;//キャスト演算子
        System.out.println("chF = " + chF);
    }
}

コマンドライン
>javac Sample09_34.java
>java Sample09_34
chF = F
'F'の文字コードは 70 です。

リテラルを直にキャスト?
リテラルも変数も
「データ型」という意味では
あまり区別はないんだ。


お疲れ様でした。




© 2019 awasekagami