为什么以下代码将字节打印为整数?

时间:2014-12-28 14:36:58

标签: java

不应该是address.getAddress())[2]以0-1或字节格式打印,因为它本身就是一个字节。为什么打印-126?

public static void main(String s[]) {
    try {
        String arg="www.google.com";
        InetAddress address = InetAddress.getByName(arg);
        System.out.println("Address: " + (address.getAddress())[2]));
    } catch (UnknownHostException exc) {
        System.out.println(exc);
    }
}

2 个答案:

答案 0 :(得分:1)

在Java中,byte是一个8位签名的整数。这意味着它可以取十进制-128到十进制+127的值。

当您说字节格式时,您可能意味着从0到255的无符号值。如果您想使用byte b作为无符号值,则应使用{{1} }。

如果您尝试做的是将字节打印为双字符十六进制字符串,则应使用

b & 0xff

答案 1 :(得分:0)

Java中的字节值是-128到127. -126是有效的字节值。