几种数据类型与byte转换方式

[java, double 转 byte]

public byte[] doubleToByte(double d) throws IOException {
   double l = d ;
   ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
   DataOutputStream dos = new DataOutputStream(baos) ;
   dos.writeDouble(l) ;
   byte b[] = baos.toByteArray() ;
   return b ;
}


[java, byte[]转double]

public static double byteToDouble(byte[] b){ 
    long l;

    l=b[0]; 
    l&=0xff; 
    l|=((long)b[1]<<8); 
    l&=0xffff; 
    l|=((long)b[2]<<16); 
    l&=0xffffff; 
    l|=((long)b[3]<<24); 
    l&=0xffffffffl; 
    l|=((long)b[4]<<32); 
    l&=0xffffffffffl;
    l|=((long)b[5]<<40); 
    l&=0xffffffffffffl; 
    l|=((long)b[6]<<48); 
    l&=0xffffffffffffffl; 
    l|=((long)b[7]<<56); 
    return Double.longBitsToDouble(l); 
}



[java, int 转 byte]

public byte[] intToByte(int i) {
        byte[] abyte0 = new byte[4];
        abyte0[0] = (byte) (0xff & i);
        abyte0[1] = (byte) ((0xff00 & i) >> 8);
        abyte0[2] = (byte) ((0xff0000 & i) >> 16);
        abyte0[3] = (byte) ((0xff000000 & i) >> 24);
        return abyte0;
    }

[java, byte 转 int]

public  static int bytesToInt(byte[] bytes) {
        int addr = bytes[0] & 0xFF;
        addr |= ((bytes[1] << 8) & 0xFF00);
        addr |= ((bytes[2] << 16) & 0xFF0000);
        addr |= ((bytes[3] << 24) & 0xFF000000);
        return addr;
    }

[java, char 转byte]

public static byte[] charToByte(char ch){ 
    int temp=(int)ch; 
    byte[] b=new byte[2]; 
    for (int i=b.length-1;i>-1;i--){ 
      b = new Integer(temp&0xff).byteValue();      //将最高位保存在最低位 
      temp = temp >> 8;       //向右移8位 
    } 
    return b; 
}

[java, byte 转 char]

public static char byteToChar(byte[] b){ 
    int s=0; 
    if(b[0]>0) 
      s+=b[0]; 
    else 
      s+=256+b[0]; 
    s*=256; 
    if(b[1]>0) 
      s+=b[1]; 
    else 
      s+=256+b[1]; 
    char ch=(char)s; 
    return ch; 
}

[Java, byte转float]

public static float byteToFloat(byte[] v){
        ByteBuffer bb = ByteBuffer.wrap(v);
        FloatBuffer fb = bb.asFloatBuffer();
        return fb.get();
}

[Java, float转byte]

public static byte[] floatToByte(float v) {
        ByteBuffer bb = ByteBuffer.allocate(4);
        byte[] ret = new byte [4];
        FloatBuffer fb = bb.asFloatBuffer();
        fb.put(v);
        bb.get(ret);
        return ret;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值