講義メモ 後半

p.56 組み込み型とは

・doubleは実数を、stringは文字列を扱うためのデータ型で、C#があらかじめ提供しているので、組み込み型ともいう
・参考:4章以降で学習するクラスを用いると、プログラマが型を定義できる。これをユーザ定義型という
・実数型:正式には浮動小数点数型といい、doubleとfloatがある
 ① double:倍精度浮動小数点数型・1個64ビット。実数値のデフォルト型
 ② float :単精度浮動小数点数型・1個32ビット。メモリを節約できるのでUnity向き
・整数型ー符号有:負の数も扱える
 ① int:汎用整数型・1個32ビット。整数値のデフォルト型。約-21億から21億まで。
 ② long:長整数型・1個64ビット。intの範囲を超える整数値用
 ③ short:短整数型・1個16ビット。メモリを節約できる。-32768~32767
 ④ sbyte:符号付きバイト型・1個8ビット。メモリをさらに節約できる。-128~127
・整数型ー符号無:0と整数のみなので、正の数の範囲が上記①~④の倍になる
 ① uint:符号無汎用整数型・1個32ビット。0から約42億まで。
 ② ulong:符号無長整数型・1個64ビット。uintの範囲を超える整数値用
 ③ ushort:符号無短整数型・1個16ビット。メモリを節約できる。0~65535
 ④ byte:バイト型・1個8ビット。メモリをさらに節約できる。0~255
・各型の範囲はC#が提供する定数で得られる。最大値は「型.MaxValue」最小値は「型.MinValue」

ミニ演習:mini056

・各型の最大値「型.MaxValue」最小値「型.MinValue」を確認しよう

作成例

using UnityEngine;
public class mini056 : MonoBehaviour {
    void Start(){
        Debug.Log("double Max:" + double.MaxValue + " Min:" + double.MinValue);
        Debug.Log("float  Max:" +  float.MaxValue + " Min:" +  float.MinValue);
        Debug.Log("int    Max:" +    int.MaxValue + " Min:" +    int.MinValue);
        Debug.Log("long   Max:" +   long.MaxValue + " Min:" +   long.MinValue);
        Debug.Log("short  Max:" +  short.MaxValue + " Min:" +  short.MinValue);
        Debug.Log("sbyte  Max:" +  sbyte.MaxValue + " Min:" +  sbyte.MinValue);
        Debug.Log("uint   Max:" +   uint.MaxValue + " Min:" +   uint.MinValue);
        Debug.Log("ulong  Max:" +  ulong.MaxValue + " Min:" +  ulong.MinValue);
        Debug.Log("ushort Max:" + ushort.MaxValue + " Min:" + ushort.MinValue);
        Debug.Log("byte   Max:" +   byte.MaxValue + " Min:" +   byte.MinValue);
    }
    void Update() { }
}

p.56 組み込み型とは(つづき)

・char:文字型。1文字分の情報で16ビット。文字リテラル(「'」で1文字を囲んだもの)を代入できる
・string:文字列型。0文字以上の文字の並びの情報で大きさはない。文字列リテラル(「"」で0文字以上を囲んだもの)を代入できる
・bool:論理型。1ビット分の情報。真偽値リテラルであるtrueとfalseを代入できる(後述)
 ※ 2進数の1と0に該当するが、C/C++のように0や1で代用することはできない

参考:その他の組み込み型と.NET型

・誤差を極力減らしたい場合(例:金銭計算)はdouble型の代わりにdecimal型を用いることができる。
 1個128ビットで、decimal型実数を代入して用いるので、特殊用途。
・各型には、C#の基盤である.NETフレームワークで規定している型名「.NET型」があり、エラーメッセージなどに
 用いられる。基本的には「System.型の名の先頭を大文字にしたもの」だが、下記の例外がある
 int ⇒ System.Int32、long ⇒ System.Int64、short ⇒ System.Int16、float ⇒ System.Single
 uint ⇒ System.UInt32、ulong ⇒ System.UInt64、ushort ⇒ System.UInt16、
 bool ⇒ System.Boolean

p.56 型を変換する

・範囲の大きい同種の型に代入する場合は、自動的に暗黙の型変換が行われる
 例: int i = 5; long a = i; //暗黙の型変換でlongになる
・整数型から実数型に代入する場合は、自動的に暗黙の型変換が行われる
 例: int i = 5; double a = i; //暗黙の型変換でdoubleになる
・実数を整数型に代入する場合は、明示的な型変換(キャスト)が必要で「(型名)」を前置する
 ※ これをキャスト演算子ともいう
 例: double a = 3.14; int i = (int)a;  //int型にキャストしてからなら代入可能で3になる
・実数リテラルを整数型にキャストすることも可能
 例: int i = (int)3.14;  //int型にキャストしてからなら代入可能で3になる
・実数から整数型にキャストすると小数点以下切捨てになる(四捨五入ではない)

ミニ演習:mini057

・パブリック変数で実数を受け取ってint型の変数にキャストして代入し、その値を表示しよう

作成例

using UnityEngine;
public class mini057 : MonoBehaviour {
    public double num;
    void Start() {
        int i = (int)num; //得た実数値をint型にキャストして代入
        Debug.Log(i);
    }
    void Update() { }
}

p.56 型を変換する(つづき)

・文字列型以外の各型を文字列型に変換するには、""(0文字の文字列)に「+」で連結すると良い
 例: int i = 365; string s = "" + i; //文字列"365"になる

参考:数字列から整数/実数型への変換

・数字のみの文字列を整数に変換するにはC#が提供している int.Parse(文字列)を使うことができる
 例: string s = "365"; int i = int.Parse(s); //整数365になる

提出:ミニ演習:mini057

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です