我欲将IP转成10进值然后存到数据库MYSQL中,对应的字段是INTEGER类型的,有个属性是Unsigned的。
int i = 192*255*255*255+168*255*255+100*255+130
由于i算出来是个很大的负数,存到数据库的时候会有异常,把unigned去掉就OK了,但是事实上不可以这样做。请教高手该怎么处理。
int i = 192*255*255*255+168*255*255+100*255+130
由于i算出来是个很大的负数,存到数据库的时候会有异常,把unigned去掉就OK了,但是事实上不可以这样做。请教高手该怎么处理。
ip本来就是占四个字节int,java的一个int正好可以放下.
用移位操作可以把四个子段放入一个int.
有时候截取后二进制数第一个数是1 那就是个负数了
byte b=(byte)129;
System.out.println(b);输出:-127