Java CRC Calculate crc32(byte[] array, int offset, int size)

Here you can find the source of crc32(byte[] array, int offset, int size)

Description

CRC32 checksum of a byte array range

License

Open Source License

Parameter

Parameter Description
array input array to perform the checksum over
offset start position
size number of bytes to checksum from the offset

Return

int checksum

Declaration

public static int crc32(byte[] array, int offset, int size) 

Method Source Code

//package com.java2s;
/**//from  ww w  .j  av a2 s  .c  om
 * Copyright (C) 2015 Michal Harish
 * <p/>
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * <p/>
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * <p/>
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

public class Main {
    /**
     * CRC32 checksum of a byte array range
     * @param array input array to perform the checksum over
     * @param offset start position
     * @param size number of bytes to checksum from the offset
     * @return int checksum
     */
    public static int crc32(byte[] array, int offset, int size) {
        int crc = 0xFFFF;
        for (int pos = offset; pos < offset + size; pos++) {
            crc ^= (int) array[pos];
            for (int i = 8; i != 0; i--) {
                if ((crc & 0x0001) != 0) {
                    crc >>= 1;
                    crc ^= 0xA001;
                } else {
                    crc >>= 1;
                }
            }
        }
        return crc;
    }
}

Related

  1. CRC(String message)
  2. crc16(byte[] bytes)
  3. crc16(final byte[] bytes)
  4. crc16_get(byte aby[], int nOffset, int nLength)
  5. CRC16_TABLE(byte[] aData, int aSize)
  6. CRC32(final byte[] buf, final int startPos, final int endPos)
  7. crc32(int[] table, int crc, byte[] buffer, int off, int len)
  8. crc32(long crcin, byte[] buf, int off, int alen)
  9. crc32(String input)