static long biggestPowerTen()

in rhino/src/main/java/org/mozilla/javascript/v8dtoa/FastDtoa.java [180:276]


    static long biggestPowerTen(int number, int number_bits) {
        int power, exponent;
        switch (number_bits) {
            case 32:
            case 31:
            case 30:
                if (kTen9 <= number) {
                    power = kTen9;
                    exponent = 9;
                    break;
                } // else fallthrough
            case 29:
            case 28:
            case 27:
                if (kTen8 <= number) {
                    power = kTen8;
                    exponent = 8;
                    break;
                } // else fallthrough
            case 26:
            case 25:
            case 24:
                if (kTen7 <= number) {
                    power = kTen7;
                    exponent = 7;
                    break;
                } // else fallthrough
            case 23:
            case 22:
            case 21:
            case 20:
                if (kTen6 <= number) {
                    power = kTen6;
                    exponent = 6;
                    break;
                } // else fallthrough
            case 19:
            case 18:
            case 17:
                if (kTen5 <= number) {
                    power = kTen5;
                    exponent = 5;
                    break;
                } // else fallthrough
            case 16:
            case 15:
            case 14:
                if (kTen4 <= number) {
                    power = kTen4;
                    exponent = 4;
                    break;
                } // else fallthrough
            case 13:
            case 12:
            case 11:
            case 10:
                if (1000 <= number) {
                    power = 1000;
                    exponent = 3;
                    break;
                } // else fallthrough
            case 9:
            case 8:
            case 7:
                if (100 <= number) {
                    power = 100;
                    exponent = 2;
                    break;
                } // else fallthrough
            case 6:
            case 5:
            case 4:
                if (10 <= number) {
                    power = 10;
                    exponent = 1;
                    break;
                } // else fallthrough
            case 3:
            case 2:
            case 1:
                if (1 <= number) {
                    power = 1;
                    exponent = 0;
                    break;
                } // else fallthrough
            case 0:
                power = 0;
                exponent = -1;
                break;
            default:
                // Following assignments are here to silence compiler warnings.
                power = 0;
                exponent = 0;
                // UNREACHABLE();
        }
        return ((long) power << 32) | (0xffffffffL & exponent);
    }