Java tutorial
//package com.java2s; /* * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE * file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * to You 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 http://www.apache.org/licenses/LICENSE-2.0 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 { /** * Array of powers of ten. Using double instead of float gives a tiny bit more precision. */ private static final double[] pow10 = new double[128]; /** * Computes a float from mantissa and exponent. */ public static float buildFloat(int mant, int exp) { if (exp < -125 || mant == 0) { return 0.0f; } if (exp >= 128) { return (mant > 0) ? Float.POSITIVE_INFINITY : Float.NEGATIVE_INFINITY; } if (exp == 0) { return mant; } if (mant >= (1 << 26)) { mant++; // round up trailing bits if they will be dropped. } return (float) ((exp > 0) ? mant * pow10[exp] : mant / pow10[-exp]); } }