java byte类型中保存大于127的数及读出

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();

	}

}

输出:
java byte类型中保存大于127的数及读出_第1张图片

你可能感兴趣的:(java,开发语言)