Java Short Number Create toShort(byte[] si, boolean isReverseOrder)

Here you can find the source of toShort(byte[] si, boolean isReverseOrder)

Description

Convert a byte[] to the corresponding short value.

License

LGPL

Parameter

Parameter Description
si the input array
isReverseOrder True if llittle-endian. False if big-endian (Most significant byte first)

Return

The value coresponding to the byte array

Declaration

public final static short toShort(byte[] si, boolean isReverseOrder) 

Method Source Code

//package com.java2s;
/*//from ww w  .j a v a2 s  .  c o m
 * Copyright 2005 MBARI
 *
 * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 
 * (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.gnu.org/copyleft/lesser.html
 *
 * 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 {
    /**
     * Convert a byte[] (most significant byte first) to the corresponding <b>short</b> value.
     *
     * @param  si  the input array
     * @return     The value coresponding to the byte array
     */
    public final static short toShort(byte[] si) {
        return toShort(si, false);
    }

    /**
     * Convert a byte[] to the corresponding <b>short</b> value.
     *
     * @param  si              the input array
     * @param  isReverseOrder  True if llittle-endian. False if big-endian (Most significant byte first)
     * @return                 The value coresponding to the byte array
     */
    public final static short toShort(byte[] si, boolean isReverseOrder) {
        short i = 0;
        if (isReverseOrder) {
            si = reverseOrder(si, 2);
        }

        for (byte b = 0; b <= 1; b++) {
            short j;
            if (si[b] < 0) {
                si[b] = (byte) (si[b] & 0x7f);
                j = (short) si[b];
                j |= 0x80;
            } else {
                j = (short) si[b];
            }

            i |= j;

            if (b < 1) {
                i <<= 8;
            }
        }

        return i;
    }

    /**
     * Reverse the ordering of a byte array
     *
     * @param  si
     * @param  i
     * @return
     */
    private final static byte[] reverseOrder(byte[] si, int i) {
        byte[] is = new byte[i];
        for (byte b = 0; b <= i - 1; b++) {
            is[b] = si[i - 1 - b];
        }

        return is;
    }
}

Related

  1. toShort(byte[] bytes, int offset)
  2. toShort(byte[] data)
  3. toShort(byte[] input)
  4. toShort(byte[] key)
  5. toShort(byte[] readBuffer, int o)
  6. toShort(byte[] src)
  7. toShort(byte[] value)
  8. toShort(char[] bytes, boolean le)
  9. toShort(final byte[] b)