关于char的取值范围和输出的不解

良辰美景月光杯 2013-05-14 11:19:39
char的取值范围是在0到2的16次方减1,可是当我把几百几千的数赋值给char类型的变量时,
输出的却是?,这是为什么?而当我赋给它十几的数时,又变为什么都没有,要说有也是空的,
而给它1,2,3,4个位数的又输出 口 ,这是什么情况?

char a = 2 ;
char b = 16;
char c = 1200;
System.out.print(a + " " + b + " " + c);

输出 ?
...全文
220 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tan_Trace 2013-05-16
  • 打赏
  • 举报
回复
char是字符类型,Java里字符的存储使用的是Unicode,计算机的内存只能存储二进制,所谓是0~2^(16-1)是它对字符进行的编码!比如ASCII等...
shine333 2013-05-16
  • 打赏
  • 举报
回复
1 你的系统不可能全世界的字都能正常显示,涉及到字体等等 2 Unicode是分区的,比如\u4E00-\u9FFF是CJK unified ideographs(中日韩越文字中出现的汉字),但是实际上这个分区目前只用到\u9FCC,也就是说,还有几十个空余。也就是这些空档内的字符其实是不存在的。 3 有些字符(尤其是你2这样的小数)即使存在,也是不可见的。尤其是<32的,基本都属于控制字符
水诺善兮 2013-05-15
  • 打赏
  • 举报
回复
char 是字符类型,只能存一个字符,但也是整型的一种,里面存放的是字符的ASC2码,比如a是97,A是65等等,中国应该对应的是gb231什么国标码什么的,
Inhibitory 2013-05-15
  • 打赏
  • 举报
回复
Java里字符的存储使用的是Unicode,占用两个字节,即一个char,其值范围是[0, 65535],每个字符都能在里面找到自己对应的整数值,例如汉字'你',但是并不是里面的每个值都表示一个字符。
失落夏天 2013-05-14
  • 打赏
  • 举报
回复
char是字符型 它的范围是字符而不是数字啊。 char位数16位没错,但是这16位表示的真不是数字,而应该是记录的是对应的ASCII码的值吧? 没特意研究过,猜的,不对的话请指教。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧