How to convert a Byte Array to an Int Array

后端 未结 7 1065
生来不讨喜
生来不讨喜 2020-11-28 12:44

I am reading a file by using:

int len = (int)(new File(args[0]).length());
    FileInputStream fis =
        new FileInputStream(args[0]);
    byte buf[] = n         


        
相关标签:
7条回答
  • 2020-11-28 13:35

    Is this ok for you?

        int IntToByte(byte arrayDst[], int arrayOrg[], int maxOrg){
            int i;
            int idxDst;
            int maxDst;
            //
            maxDst = maxOrg*4;
            //
            if (arrayDst==null)
                return 0;
            if (arrayOrg==null)
                return 0;
            if (arrayDst.length < maxDst)
                return 0;
            if (arrayOrg.length < maxOrg)
                return 0;
            //
            idxDst = 0;
            for (i=0; i<maxOrg; i++){
                // Copia o int, byte a byte.
                arrayDst[idxDst] = (byte)(arrayOrg[i]);
                idxDst++;
                arrayDst[idxDst] = (byte)(arrayOrg[i] >> 8);
                idxDst++;
                arrayDst[idxDst] = (byte)(arrayOrg[i] >> 16);
                idxDst++;
                arrayDst[idxDst] = (byte)(arrayOrg[i] >> 24);
                idxDst++;
            }
            //
            return idxDst;
        }
    
        int ByteToInt(int arrayDst[], byte arrayOrg[], int maxOrg){
            int i;
            int v;
            int idxOrg;
            int maxDst;
            //
            maxDst = maxOrg/4;
            //
            if (arrayDst==null)
                return 0;
            if (arrayOrg==null)
                return 0;
            if (arrayDst.length < maxDst)
                return 0;
            if (arrayOrg.length < maxOrg)
                return 0;
            //
            idxOrg = 0;
            for (i=0; i<maxDst; i++){
                arrayDst[i] = 0;
                //
                v = 0x000000FF & arrayOrg[idxOrg];
                arrayDst[i] = arrayDst[i] | v;
                idxOrg++;
                //
                v = 0x000000FF & arrayOrg[idxOrg];
                arrayDst[i] = arrayDst[i] | (v << 8);
                idxOrg++;
                //
                v = 0x000000FF & arrayOrg[idxOrg];
                arrayDst[i] = arrayDst[i] | (v << 16);
                idxOrg++;
                //
                v = 0x000000FF & arrayOrg[idxOrg];
                arrayDst[i] = arrayDst[i] | (v << 24);
                idxOrg++;
            }
            //
            return maxDst;
        }
    
    0 讨论(0)
提交回复
热议问题