Bu eski bir numaradır, 16 0'lık bir dize oluşturun ve ardından String.format ("% s", Integer.toBinaryString (1)) 'den aldığınız kırpılmış ikili dizeyi ekleyin ve en sağdaki 16 karakteri kullanarak baştaki herhangi bir numarayı azaltın 0 kullanıcısının. Daha da iyisi, bir ikili dizenin ne kadar uzun olmasını istediğinizi belirtmenize izin veren bir işlev yapın. Tabii ki bunu başarmanın muhtemelen sayısız başka yolu var, kütüphaneler de dahil, ancak bu yazıyı bir arkadaşıma yardımcı olmak için ekliyorum :)
public class BinaryPrinter {
public static void main(String[] args) {
System.out.format("%d in binary is %s\n", 1, binaryString(1, 4));
System.out.format("%d in binary is %s\n", 128, binaryString(128, 8));
System.out.format("%d in binary is %s\n", 256, binaryString(256, 16));
}
public static String binaryString( final int number, final int binaryDigits ) {
final String pattern = String.format( "%%0%dd", binaryDigits );
final String padding = String.format( pattern, 0 );
final String response = String.format( "%s%s", padding, Integer.toBinaryString(number) );
System.out.format( "\npattern = '%s'\npadding = '%s'\nresponse = '%s'\n\n", pattern, padding, response );
return response.substring( response.length() - binaryDigits );
}
}
%016s
mi