求,java里,char 的-1与short的-1的区别 char c1 = -1; //报错char c2 = 0xFFFF;short s1 = -1;short s2 = 0xFFFF; //报错求解是不是在编译时会进行边界检查?为什么要这样检查?还有,它是怎么检查的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char是无符号整数 范围0-255 当然是编译期检查的 你赋给它-1当然会报错 当然会进行数据类型的检查char的范围是0~2的16次方-1也就是0~65535所以你把-1赋值给char会报错 short s2 = 0xFFFF; //报错 short的范围是-32768~32767 你赋给它ffff也就是65535当然就报错如果你要赋给它-1 就要写short s2 = 0xFFFFFFFF; short s2 = 0xFFFF; //报错 short的范围是 -2的15次方到2的15次方-1也就是-32768到32767所以你赋值 0xFFFF,这个值实际上是65535所以,报错 求最大值,比较有意思。 这段代码怎么理解 一个关于修饰符的问题懂的过来看看! 一个递归的面试题有答案,可看不懂,请高手解析下原理 spring注入的dao和applicationContext获取的dao有什么区别?请高手赐教!!!!!!!111 如何读取c++ 写的archive文件? 使用100%的Java代码可不可以编写对系统硬件进行操作(即直接驱动硬件)的代码啊?比如说直接读写I/O数据,直接进行文件的读写??? 怎么样能打出这种结果? 那位告诉我java程序怎么运行 哈希值就是“地址”? 无法执行sql.executeUpdate java 如何调用一个输入密码的对话框
当然会进行数据类型的检查
char的范围是0~2的16次方-1
也就是0~65535
所以你把-1赋值给char会报错
short的范围是-32768~32767 你赋给它ffff也就是65535当然就报错
如果你要赋给它-1 就要写short s2 = 0xFFFFFFFF;
也就是-32768到32767
所以你赋值 0xFFFF,这个值实际上是65535
所以,报错