Đây là một thủ thuật cũ, tạo một chuỗi có 16 số 0 sau đó nối chuỗi nhị phân đã cắt bớt mà bạn nhận được từ String.format ("% s", Integer.toBinaryString (1)) và sử dụng 16 ký tự ngoài cùng bên phải, loại bỏ bất kỳ ký tự đầu nào 0 của. Tốt hơn, hãy tạo một hàm cho phép bạn chỉ định độ dài của một chuỗi nhị phân mà bạn muốn. Tất nhiên, có lẽ có hàng triệu cách khác để thực hiện điều này bao gồm cả thư viện, nhưng tôi thêm bài đăng này để giúp đỡ một người bạn :)
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
chưa?