//类型转换 //赋值时类型转换原则:将赋值号右边的表达式的类型转换成与左边变量相同的类型后再赋值 #include <stdio.h> int main() { char bla=100; float blb=bla;//当左边变量的数据类型比右边表达式值的类型长时,转换后的值不会改变精度或准确度,只是改变值的表现形式 float blc=12.3456; printf("%c,%d,%f\n",bla,bla,blb); printf("%f\n",blc); bla=blc; printf("%d\n",bla);//当右边表达式值的类型比左边变量的类型要长时,转换会对右边的数据进行截取,仅取出与变量长度相同的长度 ,会造成精度降低或出现错误 (丢失高位) double x;int a=350;char c; c=a;// x=a; printf("%c,%d,%f,%d,%x\n",c,c,x,a,a);//350转换成16进制: 15e:对应二进制:0000 00000 0000 0000 0000 0001 0101 1110 转换后只保留0101 1110 //0101 1110 ,转成10进制: 0*2^0+1*2^1+1*2^2+1*2^3+1*2^4+0*2^5+1*2^6+0*2^7=0+2+4+8+16+0+64+0=94 getchar(); }