Java Byte Array to Double bytesToDouble(final byte[] bytes)

Here you can find the source of bytesToDouble(final byte[] bytes)

Description

Parses the byte array into a double.

License

Open Source License

Parameter

Parameter Description
bytes The byte array to parse, at least 8 bytes.

Exception

Parameter Description
IllegalArgumentException if the byte array is not 8 bytes wide.

Return

A double value read from the byte array.

Declaration

public static double bytesToDouble(final byte[] bytes) 

Method Source Code

//package com.java2s;
/**// w  w w  . j a va2 s  .co  m
 * Copyright (c) 2010 Yahoo! Inc., 2016 YCSB contributors. All rights reserved.
 * <p>
 * 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
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * 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. See accompanying
 * LICENSE file.
 */

public class Main {
    /**
     * Parses the byte array into a double.
     * The byte array must be at least 8 bytes long and have been encoded using
     * {@link #doubleToBytes}. If the array is longer than 8 bytes, only the
     * first 8 bytes are parsed.
     * @param bytes The byte array to parse, at least 8 bytes.
     * @return A double value read from the byte array.
     * @throws IllegalArgumentException if the byte array is not 8 bytes wide.
     */
    public static double bytesToDouble(final byte[] bytes) {
        if (bytes.length < 8) {
            throw new IllegalArgumentException("Byte array must be 8 bytes wide.");
        }
        return Double.longBitsToDouble(bytesToLong(bytes));
    }

    /**
     * Reads a big-endian 8-byte long from an offset in the given array.
     * @param bytes The array to read from.
     * @return A long integer.
     * @throws IndexOutOfBoundsException if the byte array is too small.
     * @throws NullPointerException if the byte array is null.
     */
    public static long bytesToLong(final byte[] bytes) {
        return (bytes[0] & 0xFFL) << 56 | (bytes[1] & 0xFFL) << 48 | (bytes[2] & 0xFFL) << 40
                | (bytes[3] & 0xFFL) << 32 | (bytes[4] & 0xFFL) << 24 | (bytes[5] & 0xFFL) << 16
                | (bytes[6] & 0xFFL) << 8 | (bytes[7] & 0xFFL) << 0;
    }
}

Related

  1. bytesToDouble(byte[] bytes)
  2. bytesToDouble(byte[] bytes, int off)
  3. bytesToDouble(byte[] bytes, int offset)
  4. bytesToDouble(byte[] bytes, int startIndex)
  5. bytesToDouble(byte[] data, int[] offset)
  6. bytesToDoubles(byte[] b)
  7. byteToDouble(byte[] b)
  8. byteToDouble(byte[] bytes)
  9. byteToDouble(byte[] paramArrayOfByte)