C数据类型转换
一,C语言整数类型转换的一点注意事项:
1, 长类型到短类型的转换,采用直接截断的方式,如int -> short -> char等。
int i=0xf1238765;
short s1=(short)i; // s1=0x8765
unsigned short s2 = i; // s2=0x8765
2, 短类型到长类型的转换,要分两种情况进行。如果短类型是无符号整数,则长类型的高位部分填0;如果短类型是有符号整数,则长类型的高位部分填短类型的符号位。例如:
int i=0xf1238765;
short s1 = i; // s1=0x8765 (长 -> 短)
unsigned short s2 = i; // s2=0x8765 (长 -> 短)
int j1 = s1; // j1=0xffff8765 (短 -> 长)
int j2 = s2; // j2=0x00008765 (短 -> 长)
这里用了十六进制的方式赋值,如果想看每个变量的真实值,最好用调试器直接查看内存。