您的位置:首页 > 其它

数据类型之间的自动转换

2013-03-07 04:57 162 查看
//数据类型之间的自动转换 
#include<cstdio>
int main()
{
	int n1 = 1378;
	short n2;
	char c = 'a';
	double d1 = 7.809;
	double d2;
	n2 = c;    //n2变为97 
	printf("c=%c,n2=%d\n", c, n2); 
	c = n1;    //c变为’b' 
	printf("c=%c,n1=%d\n", c, n1);
	n1 = d1;   //n1 变为7 
	printf("n1=%d\n", n1);
	//浮点数自动转换成整数的规则是去掉小数部分,所以d2变为了7. 
	d2 = n1;   //d2变为7 
	printf("d2=%f\n", d2);
	char cc = 'ab';
	printf("%c\n", cc);
	return 0;
}

/*
    等号的左边是char类型的变量、右边是int类型的变量。语句执行时,先将右边的int值自动转换成一个
char类型的值,再赋值给c。由于char类型的变量只要1个字节,所以自动转换的过程就是丢弃n1的高3字节,
只取n1中最低的那个字节赋值给C。n1的值是1378,表示成十六进制是562,最低的字节是0x62。本条语句执行
完毕后,C的值就是0x62,换算成十进制就是98。98是字母‘b'的ASCII码,因此,本语句执行后,c中就存放着字母’b'.
需要指出的是,本语句的自动转换过程不会改变n1的值。
                      --书中的解释.
    1378 化成二进制为 10101100010;
	因为int 为4个字节, char为1个字节(1byte = 8 bit),int转成 char 时,只保留后八位,即c = 1100010(2) = 98(10);
	。。
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: