正在回答 回答被采纳积分+1
3回答
加文斯利
2017-07-19 09:46:13
char是两个字节,对应计算机内存中16个二进制位,65535用二进制表示为11111111 11111111
如果十进制数是65536,则需要用17个二进制位才能装填下这个数字,即1 00000000 00000000 一共17位
有关题主这个问题,把65536强制类型转换为char的时候,实际上是将该数的二进制的末尾的后16位转移到了一个char空间大小的变量里,所以在ch这个变量里存放的实际上是 00000000 00000000,即ASCLL字符0
我们知道,字母a在ASCLL字符里对应的数值为97
如果你不知道,可以通过这样的语句来验证:
int a =(int) 'a';
System.out.println(a);
最后输出的值为:97
如果想验证我上面所说的内容,题主不妨输入以下语句:
char ch = (char)65536+98;
System.out.println("ch=" + ch);
最终输出的值为:b
题主可以用笔笔在纸上画一下ch这个数的二进制存储空间的内存,这样就便于理解了。
希望帮助到你。
慕运维2858188
2017-07-18 23:01:57
准确来说是65536个 从 0 -65535
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星