キャスト

■型と計算結果

	C言語で整数同士を計算するとその結果は必ず整数になるという
	決まりがあり、小数点は切り捨てられます。

		・整数同士で 3 ÷ 2 の計算を行った結果:
			int result = 3 / 2;

			printf("%d\n", result);
	
			実行結果:
				1

	もし、3 ÷ 2の結果を小数点を含めた値(1.5)として求める場合は
	浮動小数点(実数)で計算しなければいけません。
	もちろん計算結果を受け取る変数も浮動少数点型の
	floatかdoubleにする必要があります。

		・浮動少数点同士で 3 ÷ 2 の計算を行った結果:
			float result = 3.0f / 2.0f;

			printf("%f\n", result);

			実行結果:
				1.5

	どちらか一方の値が浮動少数点だった場合、
	計算結果は浮動小数点として扱われます。

		・片方が浮動小数点で 3 ÷ 2 の計算を行った結果:
			float result = 3.0f / 2;

			printf("%f\n", result);

			実行結果:
				1.5

■型の範囲を超えた値の代入

	型の範囲を超えた値の代入を行った場合、あふれた分の値は無視されます。
	この現象をオーバーフローといいます。
	オーバーフロー後の値はビット演算で算出可能です。

		例:
			// unsinged char の範囲は0~255
			unsigned char test = 1000;

			printf("%d\n", test);

			実行結果:
				232

	C_0045

■キャスト

	型名を()で囲ったものを変数の前に書くことで
	その()で囲った型に変換することができます。
	この変換のことをキャストといい、
	キャストに使用した()をキャスト演算子といいます。

		書式例:
			(型名)変数名

		具体例:
			float aaa = 0;
			int bbb = 10;
			int ccc = 4;

			aaa = (float)bbb/ ccc; // (float)bbbの部分がキャスト

			printf("aaa = %f\n", aaa);
			
			実行結果:
				aaa = 2.5000

	キャストの効果はキャスト演算子を使用した時のみです。
	その後も効果が持続するわけではないので気をつけてください。