zoukankan      html  css  js  c++  java
  • 数据类型转换

    package com.coretech.tooler;
    
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.nio.ByteBuffer;
    import java.nio.ByteOrder;
    import java.nio.FloatBuffer;
    import java.nio.IntBuffer;
    
    import com.coretech.defobject.Constant;
    
    public class DataCovert {
    
        //float转byte[]
             public static void floatToByte(float fArr[],byte[] bRetData,int nOffset) {
                     int uLen = fArr.length * 4;
                    ByteBuffer bb = ByteBuffer.allocate(uLen);
                    byte temp[] = new byte[4];
                    for (int i = 0; i < fArr.length; i++) {
                        FloatBuffer fb = bb.asFloatBuffer();
                        fb.put(fArr[i]);
                        bb.get(temp);
                        for (int j = 0; j < 4; j++) {
                            bRetData[4*i + j + nOffset] = temp[3-j];
                        }
                    }            
             }
             
            //byte[]转float
             public static float[] byteToFloat(byte[] btArr,int nOffset,int ufLen){
                 float fRet[] = new float[ufLen ];
                 byte[] bArr = new byte [4];
                 for (int i = 0; i < ufLen ; i++) {
                     for (int j = 0; j < 4; j++) {
                         bArr[j] = btArr[4*(i+1) - j -1 + nOffset];
                    }
                     ByteBuffer bb = ByteBuffer.wrap(bArr);
                        FloatBuffer fb = bb.asFloatBuffer();
                        fRet[i] = fb.get();
                }       
                return fRet;
             }
            
            //int转byte[]
             public static void intToByte(int nArr[],byte[] bRetData,int nOffset) {
                     int uLen = nArr.length * 4;
                    ByteBuffer bb = ByteBuffer.allocate(uLen);
                    byte temp[] = new byte[4];
                    for (int i = 0; i < nArr.length; i++) {
                        IntBuffer fb = bb.asIntBuffer();
                        fb.put(nArr[i]);
                        bb.get(temp);
                        for (int j = 0; j < 4; j++) {
                            bRetData[4*i + j + nOffset] = temp[3-j];
                        }
                       
                    }            
             }
             
            //byte[]转int
             public static int[] byteToInt(byte[] btArr,int nOffset,int ufLen){
                 int fRet[] = new int[ufLen ];
                 byte[] bArr = new byte [4];
                 for (int i = 0; i < ufLen ; i++) {
                     for (int j = 0; j < 4; j++) {
                         bArr[j] = btArr[4*(i+1) - j -1 + nOffset];
                    }
                    ByteBuffer bb = ByteBuffer.wrap(bArr);
                    IntBuffer fb = bb.asIntBuffer();
                    fRet[i] = fb.get();
                }       
                return fRet;
             }
             
     }
  • 相关阅读:
    [环境]Java 环境变量
    [BZOJ 4008][HNOI2015]亚瑟王(期望Dp)
    [BZOJ 3295][Cqoi2011]动态逆序对(CDQ分治)
    [BZOJ 3668&UOJ #2][Noi2014]起床困难综合症(贪心)
    [BZOJ 4571][Scoi2016]美味(主席树)
    [BZOJ 4408][Fjoi 2016]神秘数(主席树+思路)
    [BZOJ 2212][Poi2011]Tree Rotations(线段树合并)
    [BZOJ 4592][Shoi2015]脑洞治疗仪(线段树)
    [BZOJ 2054]疯狂的馒头(并查集)
    [BZOJ 1455]罗马游戏(左偏树+并查集)
  • 原文地址:https://www.cnblogs.com/profession/p/3663294.html
Copyright © 2011-2022 走看看