Java Float Number Create toFloat(final byte[] ba)

Here you can find the source of toFloat(final byte[] ba)

Description

Converts a byte[4] array to a float by placing the bytes after each other and interpreting is according to the IEEE 754 floating-point "single precision" bit layout (the one used by java and several other programming languages).

License

Open Source License

Parameter

Parameter Description
ba the array to be converted.

Return

the resulting value as an float.

Declaration

public static float toFloat(final byte[] ba) 

Method Source Code

//package com.java2s;
/*/* ww  w. j av  a2 s .c  om*/
  (c) copyright
      
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
    
  This library 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
  Lesser General Public License for more details.
    
  You should have received a copy of the GNU Lesser General
  Public License along with this library; if not, write to the
  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  Boston, MA  02111-1307  USA
 */

public class Main {
    /**
     * Constant to represent the big endian format (the format used internally
     * in Java).
     **/
    public static boolean BIG_ENDIAN = true;

    /**
     * Converts a byte[4] array to a float by
     * placing the bytes after each other and interpreting is according to the
     * IEEE 754 floating-point "single precision" bit layout (the one used
     * by java and several other programming languages).
     *
     * The first byte in the array (byte[0]) becomes the "most" significant
     * byte in bit array (an int) to be converted, ie big-endian
     * interpretation.
     *
     * @param ba the array to be converted.
     * @return the resulting value as an float.
     **/
    public static float toFloat(final byte[] ba) {
        return Float.intBitsToFloat(toInt(ba));
    }

    /**
     * Converts an unsigned byte to an int, ie treating the bits in the byte
     * as the low 8 bits in the int (ie the eigth bit is not treated as a
     * sign bit).
     *
     * @param b the byte to convert
     * @return the resulting value as an int.
     **/
    public static int toInt(final byte b) {
        return b & 0xff;
    }

    /**
     * Converts a byte[4] array to a integer by placing the bytes after
     * each other. The first byte in the array (byte[0]) becomes the most
     * significant byte in the resulting int ie big-endian
     * conversion.
     *
     * @param ba the array to be converted.
     * @return the resulting value as an int.
     **/
    public static int toInt(final byte[] ba) {
        return toInt(ba, 0, BIG_ENDIAN);
    }

    /**
     * Converts a byte[offset+4] array to a integer by placing the bytes
     * after each other. The first byte in the array (byte[offset]) becomes the
     * most significant byte in the resulting int ie big-endian
     * conversion.
     *
     * @param ba the array to be converted.
     * @param offset starting offset in the array to be converted.
     * @return the resulting value as an int.
     **/
    public static int toInt(final byte[] ba, final int offset) {
        return toInt(ba, offset, BIG_ENDIAN);
    }

    /**
     * Converts a byte[offset+4] array to a integer by placing the bytes
     * after each other. The first byte in the array (byte[offset]) becomes the
     * most significant byte in the resulting int ie big-endian
     * conversion.
     *
     * @param ba the array to be converted.
     * @param format the format of the byte array.
     * @return the resulting value as an int.
     **/
    public static int toInt(final byte[] ba, final boolean format) {
        return toInt(ba, 0, format);
    }

    /**
     * Converts four bytes in a byte array to a integer by placing the
     * bytes after each other. I format is false the offset byte in the
     * array (byte[0]) becomes the most and byte offset+3 the least
     * significant byte in the resulting int, ie big-endian
     * conversion. if format is true the conversion is little-endian.
     *
     * Note: the BIG_ENDIAN and LITTLE_ENDIAN should be used in
     * the format parameter.
     *
     * @param ba the array to be converted.
     * @param offset starting offset in the array to be converted.
     * @param format the byte order of the byte array (see note above).
     * @return the resulting value as an int.
     **/
    public static int toInt(final byte[] ba, final int offset, final boolean format) {
        if (format) {
            return (ba[0 + offset] & 0xff) | ((ba[1 + offset] & 0xff) << 8) | ((ba[2 + offset] & 0xff) << (8 * 2))
                    | ((ba[3 + offset] & 0xff) << (8 * 3));
        }

        return ((ba[0 + offset] & 0xff) << (8 * 3)) | ((ba[1 + offset] & 0xff) << (8 * 2))
                | ((ba[2 + offset] & 0xff) << 8) | (ba[3 + offset] & 0xff);
    }
}

Related

  1. toFloat(double in1)
  2. toFloat(double[] a)
  3. toFloat(double[] a)
  4. toFloat(double[] in)
  5. toFloat(double[] v)
  6. toFloat(final byte[] inputBytes, final int offset)
  7. toFloat(final Integer value)
  8. toFloat(final Object o, final String pattern)
  9. toFloat(final Object obj)