Java Byte Array to Double bytesToDouble(byte[] data, int[] offset)

Here you can find the source of bytesToDouble(byte[] data, int[] offset)

Description

Return the double represented by the bytes in data staring at offset offset[0].

License

Open Source License

Parameter

Parameter Description
data the array from which to read
offset A single element array whose first element is the index in data from which to begin reading on function entry, and which on function exit has been incremented by the number of bytes read.

Return

the value of the double decoded

Declaration

public static final double bytesToDouble(byte[] data, int[] offset) 

Method Source Code

//package com.java2s;
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
 *
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
 *
 * 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 2
 * of the License, or (at your option) any later version.
 *
 * 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.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
 *
 * For more information, contact://from  w  w  w  .  ja  v  a 2  s .c om
 *
 *  Generalitat Valenciana
 *   Conselleria d'Infraestructures i Transport
 *   Av. Blasco Ib??ez, 50
 *   46010 VALENCIA
 *   SPAIN
 *
 *      +34 963862235
 *   gvsig@gva.es
 *      www.gvsig.gva.es
 *
 *    or
 *
 *   IVER T.I. S.A
 *   Salamanca 50
 *   46005 Valencia
 *   Spain
 *
 *   +34 963163400
 *   dac@iver.es
 */

public class Main {
    public static final int SIZE_LONG = 8;

    /**
     * Return the <code>double</code> represented by the bytes in
     * <code>data</code> staring at offset <code>offset[0]</code>.
     *
     * @param data the array from which to read
     * @param offset A single element array whose first element is the index in
     *         data from which to begin reading on  function entry, and which
     *         on function exit has been incremented by the number of bytes
     *         read.
     *
     * @return the value of the <code>double</code> decoded
     */
    public static final double bytesToDouble(byte[] data, int[] offset) {
        long bits = bytesToLong(data, offset);

        return Double.longBitsToDouble(bits);
    }

    /**
     * Return the <code>long</code> represented by the bytes in
     * <code>data</code> staring at offset <code>offset[0]</code>.
     *
     * @param data the array from which to read
     * @param offset A single element array whose first element is the index in
     *         data from which to begin reading on  function entry, and which
     *         on function exit has been incremented by the number of bytes
     *         read.
     *
     * @return the value of the <code>long</code> decoded
     */
    public static final long bytesToLong(byte[] data, int[] offset) {
        long result = 0;

        for (int i = 0; i < SIZE_LONG; ++i) {
            result <<= 8;

            int res = byteToUnsignedInt(data[offset[0]++]);
            result = result | res;
        }

        return result;
    }

    /**
     * Convert a <code>byte</code> into an unsigned integer.
     *
     * @param b the <code>byte</code> to cast
     *
     * @return a postiive <code>int</code> whose lowest byte contains the bits
     *          of <code>b</code>.
     */
    public static final int byteToUnsignedInt(byte b) {
        return (b) & 0xff;
    }
}

Related

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