String ntohl(int i)
{
int i1 = i % (256);
int i2 = (i %(65536))/(256);
int i3 = (i %(16777216))/(65536);
int i4 = (i)/(16777216);
int i5 = i % (2^8);
int i6 = (i %(2^16))/(2^8);
int i7 = (i %(2^24))/(2^16);
int i8 = i/(2^24);
Log.d(TAG, "i:"+i+" "+i1+"."+i2+"."+i3+"."+i4);
Log.d(TAG, "i:"+i+" "+i5+"."+i6+"."+i7+"."+i8);
return ""+i1+"."+i2+"."+i3+"."+i4;
}
您好,
我有一个上面列出的方法,它返回一个ipv4地址。我已经完成了计算,但i5 i6 i7 i8与i1 i2 i3 i4不同。
答案 0 :(得分:6)
运算符^表示Java中的Xor但不是幂。 你应该使用Math.exp(double a)
答案 1 :(得分:5)
使用模数可以返回您可能不期望的负数。尝试使用以下模式
int i0 = i & 0xFF;
int i1 = (i >> 8) & 0xFF;
int i2 = (i >> 16) & 0xFF;
int i3 = (i >> 24) & 0xFF;