整数どおしで計算をすると、結果は整数になる。
3 / 2 = 1
正確に小数点まで出力する場合は、実数表記にして、計算する。
3.0 / 2.0 = 1.5
整数の計算と、実数の計算で、結果が異なることを確認。
#include <stdio.h> int main() { printf("3 ÷ 2 = %d \n", 3/2); printf("3 ÷ 2 = %f \n", 3.0/2.0); printf("3 ÷ 2 = %f \n", 3.0/2); printf("3 ÷ 2 = %f \n", 3/2.0); }
整数どうしの演算では、一番範囲の広い型に変換される。
例えば下記の結果は
short s = 536; char c = 12; int a = s + c;
答えは548となり、charの型は-128~127として扱われるが、short型として計算される。
■異なる制度の型どうしの代入
unsigned char c = 1000; //オーバーフローし、上位2ビットが処理されない為、1000にはならない。 unsigned char c = -3; //符号なしの変数に符号付きの値をいれても、符号が解釈されない。