转载来源:
1 .首先,char和int都分为signed和unsigned类型,默认为signed类型。
2 .从长字节数据类型转换为短字节数据类型时,发生截断。
当从4字节int型变换为1字节的char型时,取int数据的最下位1字节,将该字节的数据分配给char型数据,并带符号,即开头为编码位; 另一方面,从int转换为unsigned char类型时,整个字节都是数据,没有符号位。
3358 www.Sina.com/viewplaincopyprint? # include stdio.h http://www.Sina.com/main () { [cpp]s=128; unsigned http://www.Sina.com/un char=s;intChar=s; printf(%x(t%x(n ),Char,unChar ); //printf (以十六进制格式输出) (%dt%dn )、Char、unChar );//以十进制输出}
输出结果如下。
2 .短字节型到长字节型的转换
从char转换为int时,前面的3个字节将附加0xfffff(char的顶部为1 )或0 x 000000 (char的顶部为0 )的符号位。
如果要从未指定的通道转换为int,请在前面添加0x000000。
3358 www.Sina.com/viewplaincopyprint? # include stdio.h http://www.Sina.com/main () { ints1,s2; unsigned http://www.Sina.com/un char=128;charChar=128; S1=(3358www.Sina.com/) unChar; S2=(3358www.Sina.com/) Char; printf(%x(t%x(n ),s1,s2 ); //printf (以十六进制格式输出) ) %dt%dn ),s1,s2 );//以十进制输出}
3.ASCII代码为1字节,第一位为符号类型。 非负范围为0-127。
如果强制将此范围内的字符转换为int,则会获得相应的ASCII值。
例如:
char a=78;
intb=(int ) a;
coutb; //结果为78
scriptasyncsrc=' https://page ad2.Google syndication.com/page ad/js/adsbygoogle.js? client=ca-pu B- 9038637400566477 ' cross origin=' anonymous '/script