byte类型的值的范围是-128~127。
但有时候,我们要把大于127的数保存到byte类型中,例如IPv4的地址。此时,需要加上一个(byte)类型的强制转换。
读出来的时候,如果想原样读出来,1)可以判断byte的值,如果小于0,那么加上256;2)或者用Byte类的toUnsignedInt函数。
示例代码:
public class Test2 {
public static void main(String[] args) {
byte[] b = new byte[] {(byte) 192, (byte) 168, 5, 1};
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + ", ");
}
System.out.println();
for (int i = 0; i < b.length; i++) {
if (b[i] < 0) {
System.out.print((b[i] + 256) + ", ");
}else {
System.out.print(b[i] + ", ");
}
}
System.out.println();
for (int i = 0; i < b.length; i++) {
System.out.print(Byte.toUnsignedInt(b[i]) + ", ");
}
System.out.println();
}
}
输出: