这是因为char是单字节的量。(65536+97)=97 (Mod 256)
在ASCII码表中,a的整数值是97,因此在Java中,定义一个char类型的变量并将其初始化为97是完全可行的。
int i = 'A' + 1 ; 最后i为 66 虽然char型是以整数存储,但是和int型还是有一定区别的,表现在取值范围上,char型 占2个字节 无符号 范围是0~65535 所以char c = 65536 就会报错了,因为越界了 最后你题目里的char j = 4; 这个4在ASCII码表里面对应了一个字符 比如 char j = 65; ...
虽然char类型是以整数存储的,但它与int类型还是有一些区别的。最明显的一点就是取值范围不同。char类型占2个字节,且无符号,所以其取值范围是0到65535。如果尝试将65536赋值给char类型的变量,就会报错,因为这超出了它的取值范围。因此,当你遇到char j = 4这样的情况时,这个4在ASCII码表中对应的是...
报错是报在了上面代码中的第3行,即char c4 = 65536,这一行,因此,当对一个char类型赋值的时候,要注意,所赋的值不能超过了65535。 将int变量直接赋给char变量 在上面,我们看到了,可以直接将一个数字赋值给char类型的变量,那是不是我们可以直接将一个int类型的变量赋给一个char类型的变量呢?
97 可能出现的错误 由于int类型比char类型范围大,从int转换为char可能出错 例如 char r=65536; System.out.println®; 编写代码时直接提示错误,不能把65536赋值给char变量,得出结论当对一个char变量赋值时,所赋的值不能超过65535 大的类型转换为小的类型,需要强转,由于是强转,将一个较多位数的类型转换为一个...
2字节,16位。char在java中是16位,因为java用的是Unicode。一个16位的编码所能产生的字符只有65536个。 Unicode码包括ASCII码。大多数计算机采用ASCII(美国标准信息交换码),它是表示所有大小写字母、数字、标点符号和控制字符的8位编码表。从'\u0000'到'\u007F'对应128个ASCII字符。
char c2 = 97; System.out.println(c2); // 'a' // char类型取值范围:0~65535 char c3 = 65535;//实际上最终是一个"看不懂"的字符。 System.out.println(c3); //错误:不兼容的类型:从int转换到char可能会有损失。 //char c4 = 65536; ...
这个字符可以是中文字符,也可以是英文字符。 赋值时把常量字符用单引号括起来,例如:char c = 'A';char z = '马'; char本质上是一个固定占用两个字节的无符号正整数,这个正整数对应于Unicode编号,用于表示那个Unicode编号对应的字符。 由于固定占用两个字节,char只能表示Unicode编号在65536以内的字符,而不能表示...
char在java中是unicode编码,比如字符'a'对应的是97,那么char c2=97,System.out.println(c2),打印出来的就是'a',所以,你这里c2=220;那么打印出来的就是220在unicode码表中对应的字符!不懂还可继续提问.