ui/src/main/java/ucar/nc2/ui/gis/shapefile/Swap.java
static public float swapFloat(byte[] b, int offset) {
    int accum = 0;
    for (int shiftBy = 0, i = offset; shiftBy < 32; shiftBy += 8, i++)
      accum |= (b[i] & 0xff) << shiftBy;
    return Float.intBitsToFloat(accum);
  }
static public float swapFloat(byte[] b, int offset) {
    int accum = 0;
    for (int shiftBy = 0, i = offset; shiftBy < 32; shiftBy += 8, i++)
      accum |= (b[i] & 0xff) << shiftBy;
    return Float.intBitsToFloat(accum);
  }
Returns the float resulting from reversing 4 bytes at a specified
offset in a byte array.

@param b      the byte array
@param offset the offset of the first byte
@return the float represented by the bytes
<code>b[offset+3], b[offset+2], ..., b[offset]</code>