我写了下述编码,显示为1行"可能损失精度",这是什么情况呢?

1 byte add[] = {131, 170, 40, 30}; //IP地址字节数组
2 //由IP地址创建InetAddress类对象
3 InetAddress someIA = InetAddress.getByAddress(add);
4 //获取并输出someIA对象的计算机名称
5 System.out.println("IP地址为64.124.117.19的计算机名称:" + someIA.getHostName());

在用NetBean编写Java的main method中,
如果将byte改为int,则违反了
static InetAddress getByAddress(byte[] addr)
这一原则

呼如林
浏览 178回答 2
2回答

慕桂英546537

java里头直接写个数字,它默认是int型的,所以你把一个int类型的数据放到一个byte类型的存储空间里头肯定有可能丢失精度了。byte add[] = {(byte)131,(byte)170,(byte)40,(byte)30}

紫衣仙女

byte add[] = {131, 170, 40, 30};131和170超过了byte的储存字节,用int add[]
打开App,查看更多内容
随时随地看视频慕课网APP