社区
Java
帖子详情
byte i = 127; i += 1;
大涵涵
2017-07-28 09:00:57
执行下列语句后,变量i的值是:
byte i = 127;
i += 1;
A. 128
B. 0
C. 1
D. -128
答案是什么,能给讲解一下吗?
...全文
838
2
打赏
收藏
byte i = 127; i += 1;
执行下列语句后,变量i的值是: byte i = 127; i += 1; A. 128 B. 0 C. 1 D. -128 答案是什么,能给讲解一下吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JOKER叔叔
2017-07-28
打赏
举报
回复
低八位,一半正一半负,0000 0000>0111 1111是0>127,+1超出正数范围1000 0000 >1111 1111是-128>-1,-1+1超出低八位,进位变成0000 0000
千杯不醉476
2017-07-28
打赏
举报
回复
-128
转自:
http://bbs.csdn.net/topics/390389645
java中byte类型作计算,都会先转换成int类型再计算。
比如
byte b = 127 + 1;//这样写报错:Type mismatch: cannot convert from int to byte
所以必须强制类型转换:
byte b = (byte) (127 + 1);
因此就能理解为什么是-128了:
int型的127在计算机内的二进制是:
0000 0000 0000 0000 0000 0000 0111 1111
加1后变成:
0000 0000 0000 0000 0000 0000 1000 0000
即128
强制转换后截取低8位变成
1000 0000
这是byte类型-128的补码。
java经典问题
byte
b=1、b=b+1、b+=1
博客主要探讨了
byte
类型与int类型的转换问题。
byte
范围是[-128,
127
],可自动转为int,但int不能自动转
byte
。超过
byte
范围会成int类型,如b=b+1报错,b+=1正确,因底层会强转结果,超范围时系统也会做相应处理。
byte
的+=和直接相加的区别
本文详细解析了Java中
Byte
类型的取值范围、溢出行为及自动类型提升机制,通过具体代码示例说明了为何
Byte
类型的最大值
127
加1会变成-128,并解释了包装类
Byte
的缓存机制。
Java中int、char、
byte
类型的计算以及=和+=的区别
本文解析了Java中
byte
、short和char类型相加为何返回int,重点讨论了a=a+b与a+=b的差异,并揭示了b+=a结果为负值的原因。讲解了类型提升对性能的影响及字符相加的ASCII码计算。
java 面试题short s1 = 1; s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错?
本文探讨了Java中short类型的变量赋值和相加操作的问题。讲解了在进行`s1 = s1 + 1`和`s1 += 1`时的类型转换规则,指出第一个表达式需要强制转换,而第二个表达式内部已经包含了转换过程。同时,文章提到了Java的基本数据类型及其特点,如
byte
、short、int、long、float、double、boolean和char,并强调了String是引用数据类型而非基本数据类型。
java
byte
b=200_java经典问题
byte
b=1、b=b+1、b+=1
本文主要探讨Java中
byte
类型的相关问题。
byte
范围是[-128,
127
],可自动转为int,但int不能自动转
byte
。超过范围会成int类型,
byte
计算不强制转换会编译错误。还通过代码示例展示了
byte
计算及自增操作的结果。
Java
51,409
社区成员
86,087
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章