当前位置: 首页 > 面试题库 >

从127.0.0.1到2130706433,然后再次返回

谭畅
2023-03-14
问题内容

使用标准Java库,从IPV4地址的虚线字符串表示形式("127.0.0.1")到等效整数表示形式(2130706433)的最快方法是什么。

相应地,反转所述操作的最快方法是什么-从整数2130706433到字符串表示形式"127.0.0.1"


问题答案:

字符串到整数:

int pack(byte[] bytes) {
  int val = 0;
  for (int i = 0; i < bytes.length; i++) {
    val <<= 8;
    val |= bytes[i] & 0xff;
  }
  return val;
}

pack(InetAddress.getByName(dottedString).getAddress());

整数到字符串:

byte[] unpack(int bytes) {
  return new byte[] {
    (byte)((bytes >>> 24) & 0xff),
    (byte)((bytes >>> 16) & 0xff),
    (byte)((bytes >>>  8) & 0xff),
    (byte)((bytes       ) & 0xff)
  };
}


InetAddress.getByAddress(unpack(packedBytes)).getHostAddress()


 类似资料:
  • 问题内容: 我需要将JSONArray对象存储为字符串,然后检索该字符串并将其转换回JSONArray。 如果我做: 我会找回同一个物体吗? 我正在尝试将JSONArray存储在SQLite数据库中。 这就是我在看的东西。http://developer.android.com/reference/org/json/JSONArray.html#toString() 问题答案: 只要它是一个有效的

  • 问题内容: 我需要在两台机器之间发送一些变量的值,并打算使用套接字来实现。我使用md5哈希算法作为发送数据的校验和,以确保正确传输数据。要执行md5哈希算法,我必须将数据转换为字节。我想同时传递变量的名称及其值。因为我有很多变量,所以我使用字典。 所以我想将类似的东西转换为字节? 换句话说,我有一个字典,里面有很多不同的数据类型,包括列表,列表又有多种不同的数据类型,我想将其转换为字节。然后在接收

  • 问题内容: 我正在寻找将Java char数组转换为字节数组 而不创建中间体的方法,因为char数组包含密码。我查看了几种方法,但是它们似乎都失败了: 断言总是失败的(并且,至关重要的是,当在生产中使用该代码时,密码将被拒绝),但是print语句会打印出三次密码。为什么与和有所不同,却显得相同?我是否错过了空终止符之类的东西?我怎样做才能使转换和未转换工作? 问题答案: 问题是您使用构造函数,该构

  • 问题内容: 我有A4页的PDF。出于打印原因,每页包含两个相同的A5页。我要在Java程序中做的是拆分这些页面,并将每个唯一的A5页面零次使用多次作为模板来添加/替换一些文本。完成此操作后,我想将A5页面重新粘贴回A4页面(出于相同的打印原因)。 一个示例:使用第三页第一页和第二页一次。 拆分页面。(并丢弃正确的A5页) 创建第一页的三个副本和第二页的一个副本。 添加/替换文本。 将页面粘合在一起

  • 我有一个数据帧: 我想添加一列,以便最终的数据帧如下所示: 我不希望新行依赖于StoreNumber,这在示例中看起来很明显。我想从1开始编号,当我到达3时,再从1开始。我该怎么做呢?

  • 问题内容: 是否有一种可靠的方法将任何对象转换为字符串,然后再次转换为同一对象?我已经看到了一些示例,这些示例中的人们使用转换它们,然后将该值传递给构造函数以再次重建对象,但并非所有对象都具有这样的构造函数,因此该方法不适用于所有情况。有什么办法? 问题答案: 是的,这称为序列化!