Chapter 02. 変数とデータ型(2)


提供日:2021-07-27(2日目)
강의명 : 04 문자자료형
강의명 : 05 실수와 논리 자료형
강의명 : 06 상수와 리터럴, 형변환

文字データ型


内部表示ビットの組合せ
エンコーディング:各文字に特定の数値(コード値)を指定します.
デコード:数値を元の文字に変換
文字セット
文字セット:問題のコード値(数値)
アスキー:アルファベット、数字、特殊文字などを1バイトで表す
Unicode:ハングルなどの複雑な言語を表現するための標準符号化
UTF-8、UTF-16代表
문자를 변수에 저장하면? 문자에 해당하는 코드 값이 저장됨
文字列変数の宣言と使用
  • 文字のデータ型:char
  • は内部で数字として表すため、数字を入力しても文字は
  • を出力することができる.
    文字セット:文字を数値に変換するセット
    エンコーディング:文字を数値に変換
    デコード:数値から文字に変換
    ASKII code:1バイトでアルファベットと数字の特殊文字を表す文字のセット.
    UNICode:グローバル標準で作成された文字セット
    UTF-8:1バイトから4バイトの文字表示
    UTF-16:2バイト表示文字

    実数と論理データ型


    誤りは二重資料型を主とする.
    floatを使用する場合はf、F識別子を使用
    エラーには無限の数字があります.無限大の小数点とブン寒帯の整数部分がある.これらをコンピューターで表現するのは難しい.
    そのため、この点を表現するためには、2つの方法があります.
    浮動小数点方式
    エラー
  • は整数よりも正確であるため、整数とは異なる方法で表さなければならない.
    実数値0.1は
  • 浮動小数点として表される
    1.0 * 10^(-1)
  • 指数部と歌手部、計
  • コンピュータ使用基数2の
  • 浮動小数点エラー
    指数と数で表される浮動小数点方式では,指数付加では0を表すことができないため,いくつかの誤差が生じる可能性がある.
    実習
    package variable;
    
    public class DoubleTest {
    	
    	public static void main(String[] args) {
    		
    		double dNum = 3.14;
    		
    		float fNum = 3.14f;
    
    		System.out.println(dNum);
    		System.out.println(fNum);
    	}
    }
    
    3.14は基本的に二重処理なので、float fnum=3.14でエラーが発生します.
    前回のlongとはあまり差がありません.


    浮動小数点エラーの直接チェック
    package variable;
    
    public class DoubleTest {
    	
    	public static void main(String[] args) {
    		
    		double dNum = 1;
    		
    		for(int i = 0; i < 10000; i++) {
    			dNum += 0.1;
    		}
    		System.out.println(dNum);
    	}
    }


    計算の結果は私たちが望んでいる値ではありません.
    ロジック実習
    public class BooleanTest {
    	public static void main(String[] args) {
    		boolean isMarried = false;
    		
    		System.out.println(isMarried);
    	}
    }


    データ形式を持たない変数の使用(Java 10)
    地域変数データ型推論
    コンパイラは変数の値に基づいて推定します.
    注意事項
  • Java 10版サポート
  • 地区変数資料型だけで
  • がある.
    var num = 10;		// int num = 10
    これでいいです.Java 10の新機能
    業務上はまだ使っていません.しかし、すぐに過ぎ去ります.
    分かりますが、使いません.

    定数とリットル


    定数:不変のsufinalキーワードを使用する
    テキスト:プログラムで使用されるすべての数値、値、論理値
    ex) 10, 3.14, 'A', true
    すべてのテキストが定数プール(定数プール)に格納されます.
    定数プールに格納する場合、整数はint、実数はダブル
    せいけいかん
    異なるデータ型の値を入力すると、変換が発生します.
  • 暗黙変換:
  • 、小さいから大きいまで、低いから高いまで
  • 明示的な変換:変換するデータ型を指定します.データ損失
  • デフォルト変換の実践
    package variable;
    
    public class ImplicitConversion {
    	public static void main(String[] args) {
    		
    		byte bNum = 10;
    		int iNum = bNum;	//작은 곳에서 큰 곳으로 묵시적 변환
    		
    		System.out.println(bNum);
    		System.out.println(iNum);
    		
    		int iNum2 = 20;
    		float fNum = iNum2;	//실수가 더 정밀한 수이기 떄문에 문제없이 묵시적 변환이 실행된다.
    		
    		System.out.println(fNum);
    		
    		double dNum;
    		dNum = fNum +iNum;
    		
    		System.out.println(dNum);
    	}
    }


    明示的な変換の実践
    package variable;
    
    public class ExplicitConversion {
    	public static void main(String[] args) {
    		
    		int i = 1000;
    		byte bNum = (byte)i;
    		System.out.println(bNum);
    		
    		double dNum1 = 1.2;
    		float fNum = 0.9F;
    		
    		int iNum1 = (int) dNum1 + (int) fNum;
    		int iNum2 = (int)(dNum1 + fNum);
    		
    		System.out.println(iNum1);
    		System.out.println(iNum2);
    	}
    }
    


    明示的な変換で損失が発生する可能性がありますのでご注意ください
    バイナリ
    数値を管理する方法で、各数値ビットに一定の乗数がある.
    実習
    package variable;
    
    public class BinaryTest {
    	public static void main(String[] args) {
    		
    		int num = 10;
    		int bNum = 0B1010;
    		int oNum = 012;
    		int xNum = 0XA;
    
    		System.out.println(num);
    		System.out.println(bNum);
    		System.out.println(oNum);
    		System.out.println(xNum);
    	}
    }