两整数相除,结果为整数,有一个为实数,则为实数。
#include<stdio.h>
int main()
{
double t=7/5;
double t1=7/5.0;
printf("%.2f\n",t);
printf("%.2f\n",t1);
}
若整数,双目运算符的两边一个是有符号另一个是无符号数。同类型则结果为无符号数。
注:unsigned char或unsigned short都会先转为int
例子:’
#include<stdio,h>
int main()
{
unsigned int a=2;
int b=-5;
if(a+b>0)
{
printf("111111\n"); //最后结果输出为111111,因为b会转为无符号来进行运算
}
else
{
printf("22222\n");
}}
#include<stdio,h>
int main()
{
unsigned short a=2;
int b=-5;
if(a+b>0)
{
printf("111111\n"); **//最后结果输出为222222,因为b会转为有符号来进行运算**
}
else
{
printf("22222\n");
}}
长的赋值给短的,赋值低位
输出转换规则:
printf会把char、short转换为int,再传给printf
float提升到double类型再传给printf
例子:
#include<stdio.h>
int man()
{
char ch=0x12;
printf("%x\n",ch);
}
//输出为12
#include<stdio.h>
int man()
{
char ch=0x82;
printf("%x\n",ch);
}
//输出为ffffff82
//看82的最高位是什么,如果最高位是0则前面会补0,如果最高位是1,则前面会补1.