Here you can find the source of formatIntegerWithLeadingZeros(long x, int radix, int length)
public static String formatIntegerWithLeadingZeros(long x, int radix, int length)
//package com.java2s; /*//from ww w . j a v a 2 s . c o m Copyright (C) 2017, 2018 Bengt Martensson. 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 3 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, see http://www.gnu.org/licenses/. */ public class Main { public static String formatIntegerWithLeadingZeros(long x, int radix, int length) { return radix == 2 ? formatIntegerBase2WithLeadingZeros(x, length) : radix == 8 ? formatIntegerBase8WithLeadingZeros(x, length) : radix == 16 ? formatIntegerBase16WithLeadingZeros( x, length) : formatIntegerBaseSomeWithLeadingZeros(x, radix, length); } private static String formatIntegerBase2WithLeadingZeros(long x, int length) { return pad(Long.toBinaryString(x), length, 1); } private static String formatIntegerBase8WithLeadingZeros(long x, int length) { return pad(Long.toOctalString(x), length, 3); } private static String formatIntegerBase16WithLeadingZeros(long x, int length) { return pad(Long.toHexString(x), length, 4); } private static String formatIntegerBaseSomeWithLeadingZeros(long x, int radix, int length) { return pad(Long.toString(x, radix), length, Math.log(radix) / Math.log(2.0)); } private static String pad(String rawString, int length, double noBits) { StringBuilder str = new StringBuilder(rawString); int effectiveLength = (int) Math.ceil(length / noBits); while (str.length() < effectiveLength) str.insert(0, '0'); return str.toString(); } }