char型に対する数学的演算
メニューを表示するにはスワイプしてください
なぜ char 型で数学的な演算が可能なのか?
char データ型は非常に興味深い型です。文字を格納しますが、このデータ型に対して演算も行うことができます。
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { char firstLetter = 'A'; char secondLetter = '('; // We use type casting here to convert value from `int` to `char` char result = (char) (firstLetter + secondLetter); System.out.println(result); } }
結果が A( になると思うかもしれませんが、実際には i になります。なぜでしょうか?char は純粋な文字データ型ではなく、ASCII table から文字を取得しています。文字 A はテーブル上で 65、文字 ( は 40 に対応しています。予想通り、文字 i は 105 に対応しており、65 + 40 = 105 となります。
こちらが ASCII table へのリンクです。
キャスト
上記のコードで、この珍しい構文に気付いたかもしれません:
char result = (char) (firstLetter + secondLetter);
では、なぜ(char)が必要なのでしょうか?加算演算は、文字の数値コードを合計するため、int型の結果を返します。この結果をchar型の変数に格納するには、明示的な変換が必要です。これが(char)構文の役割であり、数値を文字に変換します。
この例では、加算の結果は105という数値です。(char)構文は、この数値をASCII tableのコード105に対応する文字に変換します。これは、文字iです。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 4
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 4