黑马程序员技术交流社区
标题:
char型可以直接赋值给int型的问题
[打印本页]
作者:
popoluno
时间:
2013-6-16 14:42
标题:
char型可以直接赋值给int型的问题
char型可以直接赋值给int型,比如
char c='a';
int number=c;
求这个过程的详解,如何赋值的,为什么不报错
作者:
刘利民
时间:
2013-6-16 14:56
在ASCII表中,字符'a'就相当于97,当执行int number = c.时已经类型转换了。即此时,number = 97
作者:
陈壹
时间:
2013-6-16 15:51
char类型的变量是以asc码的形式保存在内存当中的占一个字节 0000,用2进制表示,所以当int跟char进行转换时
int→char:10进制转换成2进制,将转换后的2进制数值的最后四位赋值给char,通过asc码转成相应字符;
char→int:字符通过asc转化成2进制,2进制转成10进制再赋值给int
asc表 http://wenku.baidu.com/view/953d32a20029bd64783e2cea.html
作者:
高腾
时间:
2013-6-16 18:29
字符类型是以ascii码存储的,ascii码存储的都是int类型的值
而int类型的取值范围比char字符类型的范围大
所以char类型到int类型存在一个隐式转换
这里的number相当于字符'a'在ascii码中所对应的int类型的值 即为97
作者:
蔡志涛
时间:
2013-6-16 21:51
在ASCII表中,字符'a'就相当于97,可以验证:字符'b'相当于98。所以你的程序里number为97;
作者:
逆_水_寒
时间:
2013-6-16 22:06
char c = 'a';
int number = c;
char bb = (char)number;
Console.WriteLine(number);
Console .WriteLine (bb);
Console .ReadKey ();
你把我写的代码复制过去运行一遍,看看输出的是什么,相信你就明白了。
ascii 码表要多看看,“A”是65,“a”是97.
char类型到int类型的转换,int类型到char类型的转换,隐式的,显示的。
加(int)是强制的。
作者:
aa26963
时间:
2013-6-17 07:36
'a'的ASCII是97,所以number就是int型的97,隐式转换的
作者:
关关雎鸠
时间:
2013-6-17 09:36
其实char存的是10进制的asscii的数字,虽然看起来是字母,其实也是数字型。char就相当于是int的子集,所以赋值不报错。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2