社区
Java SE
帖子详情
求,java里,char 的-1与short的-1的区别
zapdos
2009-08-10 03:31:13
char c1 = -1; //报错
char c2 = 0xFFFF;
short s1 = -1;
short s2 = 0xFFFF; //报错
求解
是不是在编译时会进行边界检查?
为什么要这样检查?
还有,它是怎么检查的?
...全文
327
6
打赏
收藏
求,java里,char 的-1与short的-1的区别
char c1 = -1; //报错 char c2 = 0xFFFF; short s1 = -1; short s2 = 0xFFFF; //报错 求解 是不是在编译时会进行边界检查? 为什么要这样检查? 还有,它是怎么检查的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zapdos
2009-08-10
打赏
举报
回复
4L答对了,是偶弄错了
lovecj6185
2009-08-10
打赏
举报
回复
short s2 = 0xFFFF; //报错
short的范围是 -2的15次方到2的15次方-1
也就是-32768到32767
所以你赋值 0xFFFF,这个值实际上是65535
所以,报错
knightzhuwei
2009-08-10
打赏
举报
回复
short s2 = 0xFFFF; //报错
short的范围是-32768~32767 你赋给它ffff也就是65535当然就报错
如果你要赋给它-1 就要写short s2 = 0xFFFFFFFF;
healer_kx
2009-08-10
打赏
举报
回复
[Quote=引用 2 楼 lovecj6185 的回复:]
引用楼主 zapdos 的回复:
char c1 = -1; //报错
char c2 = 0xFFFF;
short s1 = -1;
short s2 = 0xFFFF; //报错
求解
是不是在编译时会进行边界检查?
为什么要这样检查?
还有,它是怎么检查的?
当然会进行数据类型的检查
char的范围是0~2的16次方-1
也就是0~65535
所以你把-1赋值给char会报错
[/Quote]
UP
lovecj6185
2009-08-10
打赏
举报
回复
[Quote=引用楼主 zapdos 的回复:]
char c1 = -1; //报错
char c2 = 0xFFFF;
short s1 = -1;
short s2 = 0xFFFF; //报错
求解
是不是在编译时会进行边界检查?
为什么要这样检查?
还有,它是怎么检查的?
[/Quote]
当然会进行数据类型的检查
char的范围是0~2的16次方-1
也就是0~65535
所以你把-1赋值给char会报错
knightzhuwei
2009-08-10
打赏
举报
回复
char是无符号整数 范围0-255 当然是编译期检查的 你赋给它-1当然会报错
Java
面试宝典 2013版(完整版)
涵盖12个点 一.
java
基础部分 二.算法与编程 三.html&
Java
Script&ajax部分 四.
Java
web部分 五.数据库部分 六.XML部分 七.流行的框架与新技术 八.软件工程与设计模式 九.j2ee部分 十.EJB部分 十—. webservice 部分 十二.其他
java
short
转
char
_
Java
-显式转换为
char
/
short
-
java
谁能告诉我为什么即使
short
/
char
的大小均为16位,这种显式转换也会产生不同的结果?package jh;public class Main {public static void main(String[] args) {byte b = (byte)255;System.out.println("Size of
short
: " +
Short
.SIZE);System.out.pr...
第一百三十七节
Java
数据类型教程 -
Java
short
数据类型和
char
数据类型
Java
数据类型教程 -
Java
short
数据类型和
char
数据类型
JAVA
中基本数据类型————
short
整数和
char
整数二者的
区别
short
整数是2个字节
char
整数也是2个字节 那么二者的
区别
是什么?
short
类型的取值范围是-32768~32767,是有符号数,首位为符号位,首位为1时,此整数位负数。
char
类型的取值范围是0~65535 ,是无符号数,首位无论是0或1,代表的都是正数。 例如:
char
c1 = -1;//这是个错误的写法。 但是,
char
c2 = 65;//是正确的。
short
s2 = -1;//将s2赋值给
char
char
c3 = s2;//是不可以的,
short
的取值范围中包括负数
java
short
转
char
_byte,
short
,
char
的类型转换
《
java
深入解析》中例子:一、隐式类型转换在平时对byte
char
short
这几个范围较小的类型声明并赋值时,往往忽略了一个问题。在
Java
源文件当中为变量赋值时经常使用字面常量,这些常量在
Java
中是用int类型表示的。在为long类型赋值时我们会使用:long l = 123123123L;这是因为在赋值时需要一个long类型的值。那么为什么在对byte
char
short
赋值时没有对...
Java SE
62,626
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章