java int和byte问题

发布网友 发布时间:2022-04-24 06:00

我来回答

3个回答

热心网友 时间:2023-10-05 10:59

byte和int的位数不同,byte是8位,最大能表示127,int是在不同编译器里面是不同的,有16位或者32位,3可以用8位来表达,所以可以赋值给byte变量,但是b1+b2编译器在编译的时候是不知道算出来是否足够用8位表示,只知道算出来是一个int值,有可能是大于8位的int值,这个时候byte就表示不了了,你可以分别试试让127和128赋值给byte变量,你就会明白了追问如果int的b1+b2大于int不是也要报错 为什么还能得出结果 byte就不行

追答这是编译阶段,编译器只会判断编译逻辑,byte x = b1+b2这种表达式涉及到类型转换,是int转化为byte型,所以编译器要把关,而int x = b1+b2没有涉及类型转换,始终是int转int,编译器视其为安全的,你要明白编译阶段编译器是不会实际算出值来的,它只会考虑这种写法是否存在编译逻辑问题

热心网友 时间:2023-10-05 10:59

byte short 运算的时候会自动转换成int,我想问下 x是什么类型 不要贴一半的代码上来没人能看懂追问第一个是byte x=2 第二个是int x=2

热心网友 时间:2023-10-05 11:00

一个byte型整数在内存中占8位,也就是一个字节. 表数范围:-128 --127

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com