Android 浮点数Double与byte[]数组互转方法

来源:互联网 发布:网络教育本科考研经验 编辑:程序博客网 时间:2024/05/29 11:15
static double ArryToDouble(byte[] Array,int Pos)   { long accum = 0; accum = Array[Pos+0] & 0xFF;accum |= (long)(Array[Pos+1] & 0xFF)<<8;accum |= (long)(Array[Pos+2] & 0xFF)<<16;accum |= (long)(Array[Pos+3] & 0xFF)<<24;accum |= (long)(Array[Pos+4] & 0xFF)<<32;accum |= (long)(Array[Pos+5] & 0xFF)<<40;accum |= (long)(Array[Pos+6] & 0xFF)<<48;accum |= (long)(Array[Pos+7] & 0xFF)<<56;return Double.longBitsToDouble(accum); }static byte[] DoubleToArray(double Value){long accum = Double.doubleToRawLongBits(Value);byte[] byteRet = new byte[8];byteRet[0] = (byte)(accum & 0xFF);byteRet[1] = (byte)((accum>>8) & 0xFF);byteRet[2] = (byte)((accum>>16) & 0xFF);byteRet[3] = (byte)((accum>>24) & 0xFF);byteRet[4] = (byte)((accum>>32) & 0xFF);byteRet[5] = (byte)((accum>>40) & 0xFF);byteRet[6] = (byte)((accum>>48) & 0xFF);byteRet[7] = (byte)((accum>>56) & 0xFF);return byteRet;}static float ArryToFloat(byte[] Array,int Pos)   { int accum = 0; accum = Array[Pos+0] & 0xFF;accum |= (long)(Array[Pos+1] & 0xFF)<<8;accum |= (long)(Array[Pos+2] & 0xFF)<<16;accum |= (long)(Array[Pos+3] & 0xFF)<<24;return Float.intBitsToFloat(accum); }static byte[] FloatToArray(float Value){int accum = Float.floatToRawIntBits(Value);byte[] byteRet = new byte[4];byteRet[0] = (byte)(accum & 0xFF);byteRet[1] = (byte)((accum>>8) & 0xFF);byteRet[2] = (byte)((accum>>16) & 0xFF);byteRet[3] = (byte)((accum>>24) & 0xFF);return byteRet;}


 

原创粉丝点击