首页新闻找找看学习计划

0xEF为什么会被认为是Int,而不是Byte

0
悬赏园豆:30 [已解决问题] 解决于 2018-04-12 22:52

我建立了一个数组

byte test={0xEF,0x95,....}

然后发现编译的时候的在0xEF和0x95的地方提醒

Error:(9, 31) java: 不兼容的类型: 从int转换到byte可能会有损失

 

Byte不是8位2进制位吗,为什么不能承载2位16进制的数?

Rekent的主页 Rekent | 初学一级 | 园豆:91
提问于:2018-04-11 13:39
< >
分享
最佳答案
0

默认的数字都是int

要在代码里用特殊符号吧.

收获园豆:30
吴瑞祥 | 高人七级 |园豆:28770 | 2018-04-11 14:35

其他的都可以,什么0x01,0x00这类的

Rekent | 园豆:91 (初学一级) | 2018-04-11 14:39

@Rekent: 这么6的吗.那就是java的byte类型值域的问题了.

应该是java对byte类型认符号位.大于128的值就会被认为是int

吴瑞祥 | 园豆:28770 (高人七级) | 2018-04-11 14:42
其他回答(1)
0
流年飞雨 | 园豆:1978 (小虾三级) | 2018-04-11 17:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册