【发布时间】:2016-07-21 15:41:38
【问题描述】:
字节值在 0 到 255 之间,非常简单直接。然而 Java 不这么认为,并决定将值介于 -128 和 128 之间,这毁了我和其他许多人的生活。
我只是想知道什么是大创意?为什么每次我需要获取无符号字节值时都必须这样做:
int byteValue = (int) javaByte & 0xFF;
【问题讨论】:
-
因为您正在使用该转换对整数进行按位运算。真的是这个样子
((int) javaByte) & 0x000000FF; -
Josh Bloch 曾表示,他认为让
byte签名的决定是 Java 最奇怪的事情。 -
"字节值在 0 到 255 之间" 不,一个字节是 8 位。你用这些位做什么是一个不同的问题。
-
顺便说一下,它们是从-128到127。
标签: java