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);输出 ?
输出的却是?,这是为什么?而当我赋给它十几的数时,又变为什么都没有,要说有也是空的,
而给它1,2,3,4个位数的又输出 口 ,这是什么情况? char a = 2 ;
char b = 16;
char c = 1200;
System.out.print(a + " " + b + " " + c);输出 ?
它的范围是字符而不是数字啊。
char位数16位没错,但是这16位表示的真不是数字,而应该是记录的是对应的ASCII码的值吧?
没特意研究过,猜的,不对的话请指教。
2 Unicode是分区的,比如\u4E00-\u9FFF是CJK unified ideographs(中日韩越文字中出现的汉字),但是实际上这个分区目前只用到\u9FCC,也就是说,还有几十个空余。也就是这些空档内的字符其实是不存在的。
3 有些字符(尤其是你2这样的小数)即使存在,也是不可见的。尤其是<32的,基本都属于控制字符