Java Checksum Calculate checkSum(byte[] b, int offset, int length)

Here you can find the source of checkSum(byte[] b, int offset, int length)

Description

Calculate an OpenType checksum from the array.

License

Open Source License

Parameter

Parameter Description
b the array to calculate checksum on
offset the starting index in the array
length the number of bytes to check; <b>must</b> be a multiple of 4

Return

checksum

Declaration

public static long checkSum(byte[] b, int offset, int length) 

Method Source Code

//package com.java2s;
/*/*from w w w  .  j  ava 2s .  c  om*/
 * Copyright 2010 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    /**
     * Calculate an OpenType checksum from the array.
     * @param b the array to calculate checksum on
     * @param offset the starting index in the array
     * @param length the number of bytes to check; <b>must</b> be a multiple of 4
     * @return checksum
     */
    public static long checkSum(byte[] b, int offset, int length) {
        long checkSum = 0;

        for (int i = offset; i < length; i += 4) {
            for (int j = 0; j < 4; j++) {
                if (j + i < length) {
                    checkSum += (b[j + i] & 0xff) << (24 - 8 * j);
                }
            }
        }
        return checkSum & 0xffffffffL;
    }
}

Related

  1. calculateChecksums(Optional zos, InputStream inputStream, Set checksumAlgorithms)
  2. checkSum(boolean[] a)
  3. checkSum(byte abyte0[])
  4. checksum(byte current, final byte[] data, final int offset, final int length)
  5. checkSum(byte value)
  6. checksum(byte[] buf, int off, int len)
  7. checksum(byte[] data)
  8. checksum(byte[] message, int offset, int count)
  9. checksum(File file)