首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int与字节的==operator比较

问int与字节的==operator比较
EN

Stack Overflow用户
提问于 2020-07-21 10:59:54
回答 2查看 890关注 0票数 0

//代码启动

代码语言:javascript
复制
int a=3;
byte b=3;
if(a==b)  --> returns true

//代码结束

  • 查询: 它返回true是因为比较了a和b中的位数= 00000011 b= 00000011。 在这里,只做位模式比较,在int结尾处留下0并不重要。 这条线意味着什么??
EN

回答 2

Stack Overflow用户

发布于 2020-07-21 11:18:28

在java中,自动类型转换将任何小数据类型转换为这两种类型中较大的类型。因此,当您将byte b与int a进行比较时,它被转换为int b。

double是最大的数据类型,而byte是最小的。

​

​

票数 1
EN

Stack Overflow用户

发布于 2020-07-21 11:27:11

编译器不是像您猜的那样只比较这两个操作数中最不重要的8位,而是将24 0或(如果字节为负数)添加到字节中,使其与int大小相同。这被称为二进制数值提升,并在JLS的第5.6.2条中指定。从byte到int的转换在第5.1.2节中指定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63013056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档