当一个运算符的几个操作数类型不同时,需要通过一些规则把它们转化为某种相同类型。
一般来说,自动转换是指把**“比较窄的”操作数转换为比较宽的操作数**。
C语言的算术运算符的优先级(从高到低)与结合性
注:同一行中的各运算符具有相同的优先级,各行间从上往下优先级遂行降低
eg:
#include <stdio.h>
#include<stdlib.h>
int main()
{
int i,j,k;
float f,h;
i = 22;
j = 8;
f = 1000.25;
h = 830.78;
printf("*************************************\n");
printf("** This is a arithmetic calculator:**\n");
printf("*************************************\n");
printf("i = %d,j = %d\n",i,j);
printf("i+j=%d\n",i+j);
printf("i-j=%d\n",i-j);
printf("i*j=%d\n",i*j);
printf("i/j=%d\n",i/j);
printf("i%%j=%d\n",i%j);
k = 4*i - j/4 + i*(i-j)/(5*j-3*10);
printf("4*i - j/4 + i*(i-j)/(5*j-3*10)=%d\n",k);
printf("f+h=%.4f\n",f+h);//%.4f表示小数点后面几位
printf("f-h=%f\n",f-h);
printf("f/j=%.2f\n",f/j);
system("pause");
return 0;
}
归纳总结:
1)整数相除用运算符"/",过整 数 求 模 (m o d )运 算 符 得 到 余 数 。
eg:
这在十进制数分解校验中经常用到。进制数6 5 除 以 10, (i= 6 5 /1 0 )得到个位数6 , 对 6 5 求 摸 (j =65% 10)得到个位数5。
2)求摸运算还有一个用处在于可以用于循环访问数组中,由于模N 得到的余数一定是0 到N -1 之间的一个数,可以防止数组的访问越界