byte b = 11;这期间发生了什么? byte b = 11;如果我输入byte b = 512; 就会提示Type mismatch: cannot convert from int to byte。为什么是int转为byte呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为byte的范围是-128到127,你精512赋值给b的时候,超出了byte的范围,所以默认b为int型,然后做int-->byte的类型转换,但512不在-128与127之间,所以不能转换! 默认b为int型?这个表达不大对吧,应该是512是int型,b是byte型,int占4个字节,byte只占1个字节,你把4个字节的转化为1个字节必然要舍弃3个字节,这时显然就发生错误了 byte 的存储大小为2个字节(8bit) = 2的8次方 。 存储大小为256 刚好是-128到正的127 。 不好意思, Byte 是一个字节(8bit) 515超过了byte的范围所以会报错 #9楼:byte 在计算时自动转为int我的问题是,如果定义byte b = 11; 这样的语句11是byte还是int? byte b=11;这个语句中,如果只写个 11 那么系统就默认它是int型的,但是b是byte类型的,所以这句话是:int型的11自动转换成了byte型的11,但是如果这个数不是11,而且不在-128~127之间,那将会出现错误的结果了。 java代码中的自然数,编译的时候作为int处理。 如果定义byte b=11,11是整数,b是byte;byte/short/int/long都是整数类型,byte b=11判断的是11赋值给b是否byte的要求,11是整数,还有什么类型的区别吗? 前面各位都说了,byte的范围是-128到127,你将512赋值给b的,会超出了byte的范围。如果你还是想这么做,将512赋值给byte类型,就要强制类型转换 byte b=(byte)512;你自己运行看看得到什么 byte adf = 11;float sadf =1.11;一个整数如果直接这样写的话就是默认为int浮点数就是默认为double类型所以会从int转向byte 我认为是这样的;11这样的数字在JAVA中都是int的。在byte b = 11;的过程中,11自动从int转换为了byte类型,并赋给b。当byte b = 256;的时候,由于256超过byte类型的最大值,导致自动转换失败,报出无法将int转换为byte的异常!不知道对不对,先不结了,等Master级别的人来给个说法。 java jre Junit 验证执行结果 一个奇怪的问题,在linux下可以正常运行,但是到了win下就不可以了 如何用JAVA应用程序向网页表单提交数据 菜鸟提问 你也会出这样的问题吗? 如何去覆写equals()方法呢? 新手问题:怎样在SQL SERVER实现自增字段 怎样可以知道java类中的各种方法的API java 程序cpu占用率 内存使用 Java中byte是不是无意义的? 这样可以吗?
存储大小为256 刚好是-128到正的127 。
所以会报错
#9楼:byte 在计算时自动转为int我的问题是,如果定义
byte b = 11; 这样的语句
11是byte还是int?
如果定义byte b=11,11是整数,b是byte;byte/short/int/long都是整数类型,byte b=11判断的是11赋值给b是否byte的要求,11是整数,还有什么类型的区别吗?
byte b=(byte)512;
你自己运行看看得到什么
float sadf =1.11;一个整数如果直接这样写的话就是默认为int
浮点数就是默认为double类型所以会从int转向byte
11这样的数字在JAVA中都是int的。
在
byte b = 11;
的过程中,11自动从int转换为了byte类型,并赋给b。
当
byte b = 256;
的时候,由于256超过byte类型的最大值,导致自动转换失败,报出无法将int转换为byte的异常!不知道对不对,先不结了,等Master级别的人来给个说法。