Java Byte Array to Int bytesToInt(final byte[] bytes, final int position, final int length, final int bitShiftStart, final int bitShitIncrement)

Here you can find the source of bytesToInt(final byte[] bytes, final int position, final int length, final int bitShiftStart, final int bitShitIncrement)

Description

bytes To Int

License

Apache License

Declaration

private static final int bytesToInt(final byte[] bytes, final int position, final int length,
            final int bitShiftStart, final int bitShitIncrement) 

Method Source Code

//package com.java2s;
/*//from ww w  .java  2  s .  c om
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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 {
    private static final int bytesToInt(final byte[] bytes, final int position, final int length,
            final int bitShiftStart, final int bitShitIncrement) {
        if (length > 4)
            throw new IllegalArgumentException("The maximum capacity for an int is 32 bytes");
        final int signum = bytes[position] < 0 ? -1 : 1;
        final int positiveNum = (int) bytesToUInt(bytes, position, length, bitShiftStart, bitShitIncrement);
        return signum * positiveNum;
    }

    private static final long bytesToUInt(final byte[] bytes, final int position, final int length,
            final int bitShiftStart, final int bitShitIncrement) {
        long num = 0;
        if (length > 4)
            throw new IllegalArgumentException("The maximum capacity for an int is 32 bytes");
        for (int i = 0, bitShift = bitShiftStart; i < length; i++, bitShift += bitShitIncrement) {
            final long tempVal = bytes[position + i] & 0xff;
            num += tempVal << bitShift;
        }
        return num;
    }
}

Related

  1. bytesToInt(final byte[] arr)
  2. bytesToInt(final byte[] b)
  3. bytesToInt(final byte[] buf, final int offset)
  4. bytesToInt(final byte[] bytes)
  5. bytesToInt(final byte[] bytes)
  6. bytesToInt(int off, byte... arr)
  7. bytesToInt16(byte highByte, byte lowByte)
  8. bytesToInt2(byte[] arr, int offset)
  9. bytesToIntArr(byte[] arr, int offset, int[] num, int soff, int size)