1.整数计算,结果一定是一个整数,例如:
printf("%d",10 / 3); //结果等于3,不能把%d改成其他,数据会出错
2.小数计算,结果一定是一个小数
printf("%lf",10.0 + 3.0); //13.000000
3.整数和小数,结果一定是小数
4.小数直接参与运算,结果可能是不精确的
printf("%lf",3.333333333333333 + 6.666666666666666); //结果等于10
printf("%.20lf",10.0 / 3.0); //结果出现误差,3.33333333333333348136
5.除法不能除以0
6.取余的细节
1)运算的数据必须全是整数(整型)
printf("%d",10 % 3);
2)获取余数的正负,是跟第一个数字保持一致的
printf("%d",10 % 3); //1
printf("%d",-10 % 3); //-1
printf("%d",10 % -3); //1
3)不允许%0
7.隐式转换:把一个取值范围小的,转成取值范围大的
1)不同的数据类型进行计算、赋值等操作,会触发隐式转换
2)取值范围小的,和取值范围大的计算,小的会自动提升为大的,再进行运算
顺序:double>float>long long>long>int>short>char
3)short/char类型的数据在运算时,无条件提升为int,再进行运算
short a = 10;
short b = 20;
int c= a + b;
short a = 10;
int b = a;
8.强制转换:如果把取值范围大的,赋值给取值范围小的,就需要进行强制转换
1)格式:目标数据类型 变量名=(目标数据类型) 被强制转换的数据;
short i = (short) b;
2)强制转换的弊端:有可能导致数据错误
9.字符跟数字进行转换的时候会查询ASCII码表
10.算数运算符小结:
1) / 和 % 的区别:两个数据作除法, / 取结果的商,% 取结果的余数。
2)整数计算只能得到整数,要想得到小数,必须有小数参与运算。
3)类型一致:直接计算
4)类型不一致:默认隐式转换(小 --> 大、short char --> int)
5)强制大变小:强制转换