社区
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; //报错
求解
是不是在编译时会进行边界检查?
为什么要这样检查?
还有,它是怎么检查的?
...全文
296
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当然会报错
MySQL 数据类型和运算符
Re: MySQL 数据类型和运算符=============================# 数据类型 整数类型:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数类型:三种 FLOAT DOUBLE DECIMAL 日期与时间数据类型:五种 YEAR -1 字符串类型:二种
CHAR
(M) VAR
CHAR
(M) -1 二进制字符串:位字段BIT 固定BINARY 可变VARBINARY -1 # 运算符 算术 运算符 比较 运算符 逻辑 运算符 位操作 运算符 运算符的优先级-------------------------------------
unsigned
short
1与
char
-1谁更大
相信学完计算机系统的小伙伴都有这个疑惑,接下来的保姆级教程,一定可以让你恍然大悟!! unsigned
short
1与
char
-1谁更大 首先
short
和
char
不管有无符号都要转化为int型进行比较 ●unsigned
short
1转化为int 无符号数按原码存,所以unsigned
short
的二进制为0000 0000 0000 0001,因为是无符号数,所以按0扩展为int的0000 0000 0000 0000 0000 0000 0000 0001,因为是有符号int,第一位为0
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
short
转
char
_byte,
short
,
char
的类型转换
《
java
深入解析》中例子:一、隐式类型转换在平时对byte
char
short
这几个范围较小的类型声明并赋值时,往往忽略了一个问题。在
Java
源文件当中为变量赋值时经常使用字面常量,这些常量在
Java
中是用int类型表示的。在为long类型赋值时我们会使用:long l = 123123123L;这是因为在赋值时需要一个long类型的值。那么为什么在对byte
char
short
赋值时没有对...
java
short
转
char
_
Java
中byte、
short
、
char
、int、long运算时自动类型转化问题
--------------------------------------------------------------------------------------------------★★自动(隐式、默认)类型转换与强制(显式)类型转换★★1) boolean类型不参与转换2) 默认转换A:从小到大B:byte,
short
,
char
--» int --» long --» float...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章