社区
Java SE
帖子详情
如果将2130706433 与127.0.0.1两者进行互换
eshen2002
2005-04-18 09:50:10
如题:2130706433 是一个无符号整数。后面是一个IP地址形式,现在要将这两者进行相互转换,急
...全文
1086
19
打赏
收藏
如果将2130706433 与127.0.0.1两者进行互换
如题:2130706433 是一个无符号整数。后面是一个IP地址形式,现在要将这两者进行相互转换,急
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eshen2002
2005-04-20
打赏
举报
回复
在此给出我自己将IP转换成无符号数的傻办法。旨在抛砖玉,期望更简单的方法。
byte []ia = InetAddress.getByName("127.0.0.1").getAddress();
System.err.println(ia[0]<0 ? ((long)(Math.abs(129+ia[0]) << 24)+(127<<24)) : ia[0]<<24);
System.err.println(ia[1]<0 ? ((long)(Math.abs(129+ia[1]) << 16)+(127<<16)) : ia[1]<<16);
System.err.println(ia[2]<0 ? ((long)(Math.abs(129+ia[2]) << 8)+(127<<8)) : ia[2]<<8);
System.err.println(ia[3]);
hongyan2004
2005-04-20
打赏
举报
回复
受益非浅
shan1119
2005-04-19
打赏
举报
回复
嘿嘿,copy卡卡西:
// int i = 0;
// byte b[] = {127,0,0,1};
// i = i|1;
// i = i|0<<8;
// i = i|0<<16;
// i = i|127<<24;
// System.out.println(i);
int i = 0;
byte b[] = {192-255,168-255,0,2};
i = i|1;
i = i|0<<8;
i = i|0<<16;
i = i|127<<24;
System.out.println(i);
tuxw
2005-04-19
打赏
举报
回复
steedhorse(晨星) 兄,你好
一年多没有到 CSDN 来了,以前到 C、VC 去得比较多,受过你不少帮助啊,现在因为想学 JAVA 又回来了,想不到还能看到这么熟悉的马甲,有种回家的感觉
eshen2002
2005-04-19
打赏
举报
回复
各位高人帮小弟看看。
jFresH_MaN
2005-04-19
打赏
举报
回复
long i=3232235522L;
byte []b=new byte[4];
b[3]=(byte)(i&0xff);
b[2]=(byte)(i>>8&0xff);
b[1]=(byte)(i>>16&0xff);
b[0]=(byte)(i>>24&0xff);
for(int k=0;k<b.length;k++) {
System.out.print((b[k]<0?b[k]+256:b[k])+(k!=b.length?".":"");
}
测试通过,可以处理大于127的数值
原理就是大于127的byte会做补码处理,得到的就是一个负数
那么我判断如果这个byte是负数,就加256得到原来的数,同时也转成int来处理
jFresH_MaN
2005-04-19
打赏
举报
回复
我想说的是将127.0.0.1如何转换成2130706433这个无符号数。
这个也简单啊,由字符串得到InetAddress对象
然后getAddress()得到byte[]
再使用上面的逆过程得到一个long型。
大于127的值倒是没有注意处理,我再想象
eshen2002
2005-04-19
打赏
举报
回复
THX,jFresH_MaN(TM)和楼上的老兄 。我想说的是将127.0.0.1如何转换成2130706433这个无符号数。另外byte类型的最大值是127,如果IP地址大于这个数的话,上面的程序就不正确。
eshen2002
2005-04-19
打赏
举报
回复
楼上的方法在数字不超过127时是对的,但是如果数字大于127的话好像不能将IP转换为无符号数。
faen
2005-04-18
打赏
举报
回复
不过听佩服jFresH_MaN(TM)老兄的,什么都会
jFresH_MaN
2005-04-18
打赏
举报
回复
127.0.0.1转换都没有问题,其他ip地址肯定都没有问题啊
有没有将IP地址转换过来的呢?
----
你的意思是不是把String转换成InetAddress类对象?
InetAddress ip=InetAddress.getByName("127.0.0.1");
oracle不清楚
eshen2002
2005-04-18
打赏
举报
回复
另:在mysql里有inet_ntoa/inet_aton函数进行转换,不知道oracle里有没有对应的函数。
eshen2002
2005-04-18
打赏
举报
回复
谢谢楼上的各位!我在测试程序时将3232235522(192.168.0.2)进行测试,好象结果不对。
另外,楼上给的是转化成IP地址的,有没有将IP地址转换过来的呢?
jFresH_MaN
2005-04-18
打赏
举报
回复
呵呵,楼上的夸张了
晨星
2005-04-18
打赏
举报
回复
jFresH_MaN(TM)兄弟的速度,任何人都寒。^0^
faen
2005-04-18
打赏
举报
回复
我考,每次都慢一点 :(
faen
2005-04-18
打赏
举报
回复
public class A
{
public static void main(String [] args)
{
long t=2130706433;
byte c=127;
byte a[]=new byte[4];
a[3]=(byte)(t&c);
a[2]=(byte)((t>>8)&c);
a[1]=(byte)((t>>16)&c);
a[0]=(byte)((t>>24)&c);
for(int i=0;i<4;i++)
{
if(i!=3)
System.out.print(a[i]+".");
else
System.out.print(a[i]);
}
}
}
jFresH_MaN
2005-04-18
打赏
举报
回复
int i=2130706433 ;
byte []b=new byte[4];
b[3]=(byte)(i&0xff);
b[2]=(byte)(i>>8&0xff);
b[1]=(byte)(i>>16&0xff);
b[0]=(byte)(i>>24&0xff);
System.out.println(InetAddress.getByAddress(b).getHostAddress());
测试通过
实时更新Visual Studio Code工具与浏览器HTML修改同步更新-live-server的使用
在大多数情况下,两者是可以
互换
使用的。但在某些特定环境下,比如配置文件中,可能需要使用具体的IP地址形式。 - **端口号的作用**:端口号是用来标识网络中的服务的数字标识。例如,在本例中提到的“5500”就是`...
Ubuntu安装LAMP教程
尽管Apache和MySQL之间的依赖关系不是特别强,理论上可以
互换
它们的安装顺序,但是PHP必须安装在Apache和MySQL之后,因为PHP依赖于这两者提供的服务来运行PHP脚本和访问数据库。 #### 三、MySQL安装详解 1. **打开...
操作题练习
与T568B相比,虽然在大多数情况下两者可以
互换
使用,但在特定的网络设备上可能需要使用特定的标准。 制作这些线缆需要用到的工具包括5类或超5类UTP双绞线、RJ45水晶头、压线钳和斜口钳。确保线缆长度至少为1米,以...
深入探讨localhost与
127.0
.
0.1
的区别
本文将深入探讨这两者的区别。1. 定义与基本概念localhost:在计算机网络中,localhost是一个标准主机名,用于指代“本地主机”,即运行程序的同一台计算机。它是一个域名,而非一个具体的IP地址。在多种操作系统中...
简单了解:localhost 与
127.0
.
0.1
的区别
虽然localhost与
127.0
.
0.1
在日常使用中几乎可以
互换
,它们之间的细微差异却揭示了网络通信中的有趣细节。理解这些差异不仅能帮助我们更有效地利用网络资源,还能在特定情境下作出更加合适的技术选择。这些资料,对于...
Java SE
62,630
社区成员
307,263
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章