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

Java:将int转换为InetAddress

杜晨朗
2023-03-14
问题内容

我有一个int以网络字节顺序包含IP地址的地址,我想将其转换为InetAddress对象。我看到有一个InetAddress采用的构造函数byte[],是否有必要将转换intbyte[]第一个,还是有其他方法?


问题答案:

这应该工作:

int ipAddress = ....
byte[] bytes = BigInteger.valueOf(ipAddress).toByteArray();
InetAddress address = InetAddress.getByAddress(bytes);

您可能需要交换字节数组的顺序,但我无法弄清楚是否会以正确的顺序生成该数组。



 类似资料:
  • 问题内容: 我正在尝试将int []转换为bytes。它也被转换。 我的转换代码是这样的。 假设我输入一个int [] = {10,11,15,41,12,8,4,23,5,17,23,36,6}现在我希望字节数组像这样{10,0 ,0,0,11,0,0,0,15,0,0,0,41,0,0,0,12,0,0,0,8,0,0,0,4,0,0 ,0,23,0,0,0,5,0,0,0,17,0,0,0,

  • 我有一个ArrayList ,希望将其转换为int[][]。结果数组中的每个条目都有相同的int[],尽管它们是不同的(是的,我已经检查过了!)。我是不是错过了一些简单的东西?int[][]中数组的长度由arr.length给出 编辑:我已经意识到代码可以正常工作,所以这里有一个更大的代码示例,出现问题的地方。permute()照它说的做,并在新的置换完成时,置换给定数组中的整数,返回true。

  • 问题内容: 所以我的问题是:为什么不执行编译错误? 问题答案: 四种情况中的三种正确报告了错误。复合分配是该规则的唯一例外。Java语言规范,第15.26.2部分,解释了以下原因: 15.26.2复合赋值运算符 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 例如,以下代码是正确的: 并导致x的值为7,因为它等效于: 如您所见,通过隐式插入强制类型转换可以避免该错误。

  • 问题内容: 给定以下枚举,将Int强制转换为Java中的枚举的正确方法是什么? 问题答案: 尝试在必须为or的地方,即该枚举的有效序数。 请注意,在Java中,枚举实际上是类(因此,枚举值是对象),因此您不能将an 甚至转换为枚举。

  • 问题内容: 下面是一个代码片段, 但是我得到的是空输出。 我将得到1作为输出。 有人可以解释吗?如果我想像第一个代码片段一样将int转换为char,该怎么办? 问题答案: 会打印出ascii值为1的字符(首字符,这是不可打印的)。 将以ascii值49输出一个字符(一个对应于“ 1”) 如果要转换数字(0-9),则可以将数字加48并进行转换,例如;。 如果要转换 as asi的ascii值,可以使

  • 下面是一段代码片段, 但我得到的是空输出。 我将得到1作为输出。 有人能解释一下吗?如果我想像第一个代码片段那样将int转换成char,我应该怎么做?