当前位置: 首页 > 知识库问答 >
问题:

为什么我们需要AND来打印IP地址[重复]

章海
2023-03-14

这可能是显而易见的事情,但我错过了。为什么我需要用0xff执行AND来获取ip地址?我的看法是完全一样的,用0xff执行AND应该让位保持不变,那么如果我不执行AND操作,为什么它不起作用呢?

package com.inet.ex1;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class ShowIP {
    public static void main(String[] args) {
        InetAddress host;
        try {
            host = InetAddress.getLocalHost();
            byte[] ip = host.getAddress();
            for (int i = 0; i < ip.length; i++) {
                if (i == 0) System.out.print(ip[i] & 0xff);
                else System.out.print("." + (ip[i] & 0xff));
            }
        } catch (UnknownHostException e) {
            System.out.println(e);
        }
    }
}

共有1个答案

鄢子平
2023-03-14

我认为这是因为<code>byte<code>是一种原始的数据类型。它的最小值为-128,最大值为127(包括)。

在这种情况下,数组中的每个字节都包含一个无符号值,因此当您使用 0xff(整数)执行按位 AND 运算符时,结果也是 int

 类似资料:
  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?

  • 为什么我们需要字典? 计算机最适合使用数字,而人类最适合使用姓名。我们创建了DNS以便记住主机名而不是IP地址。字典以相同的方式使用,因此我们可以记住AVP名称而不是类型编号。当FreeRADIUS解析请求或生成响应时,会查阅字典。 但是,字典与DNS不同,因为RADIUS客户端不知道FreeRADIUS使用的这些“友好”名称。永远不会在RADIUS客户端和RADIUS服务器之间交换AVP名称。

  • 问题内容: 我开始使用RxJS,但我不明白为什么在此示例中我们需要使用类似or 的函数;数组的数组在哪里? 如果有人可以直观地解释正在发生的事情,那将非常有帮助。 问题答案: 当您有一个Observable的结果是更多Observable时,可以使用flatMap。 如果您有一个由另一个可观察对象产生的可观察对象,则您不能直接过滤,缩小或映射它,因为您有一个可观察对象而不是数据。如果您生成一个可观

  • 我只需要一些关于java中标记接口的澄清。我读到它在java中是一个空接口。我只想知道为什么以及在哪里我们需要使用这个。有人能帮忙吗?

  • 我在这里(有点)了解jdk 5 Reentry antLock的功能 但为什么我们想要一个“再进入者”锁呢?i、 e如果一个线程已经锁定了一个对象,为什么它需要再次获取它?