Tôi tìm thấy hex cách sau đây để chuyển đổi nhị phân:Chuyển đổi chuỗi thập lục phân (hex) thành một chuỗi nhị phân
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
Trong khi phương pháp này làm việc cho số hex nhỏ, một số hex như sau
A14AA1DBDB818F9759
Ném một NumberFormatException.
tôi do đó đã viết các phương pháp sau đây mà dường như làm việc:
private String hexToBin(String hex){
String bin = "";
String binFragment = "";
int iHex;
hex = hex.trim();
hex = hex.replaceFirst("0x", "");
for(int i = 0; i < hex.length(); i++){
iHex = Integer.parseInt(""+hex.charAt(i),16);
binFragment = Integer.toBinaryString(iHex);
while(binFragment.length() < 4){
binFragment = "0" + binFragment;
}
bin += binFragment;
}
return bin;
}
Phương pháp trên cơ bản lấy từng ký tự trong chuỗi Hex và chuyển đổi nó thành các phần tử tương đương nhị phân của nó bằng 0 nếu cần sau đó kết hợp nó với giá trị trả về. Đây có phải là cách thích hợp để thực hiện chuyển đổi không? Hay tôi nhìn thấy một cái gì đó có thể gây ra cách tiếp cận của tôi để thất bại?
Cảm ơn bạn trước vì đã hỗ trợ.
có một chặng đường dài không làm việc cho những gì bạn đang muốn? Nó cũng có ToBinaryString(). Điều đó sẽ hỗ trợ ... Phạm vi từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807. – Jared
nếu điều đó làm những gì bạn muốn, hãy cho tôi biết để tôi có thể đăng câu trả lời. – Jared
Mã của bạn có vẻ tốt với tôi. Bạn cũng có thể xem liên kết sau: http://java2everyone.blogspot.in/2009/04/java-hexadecimal-to-binary.html?m=1 –