मुझे जावा में पूर्णांक मान को 2 अंकों के हेक्स मान में बदलने की आवश्यकता है। इसके लिए कोई रास्ता नहीं है। धन्यवाद
मेरी सबसे बड़ी संख्या 63 होगी और सबसे छोटी होगी 0. मैं छोटे मूल्यों के लिए एक अग्रणी शून्य चाहता हूं।
मुझे जावा में पूर्णांक मान को 2 अंकों के हेक्स मान में बदलने की आवश्यकता है। इसके लिए कोई रास्ता नहीं है। धन्यवाद
मेरी सबसे बड़ी संख्या 63 होगी और सबसे छोटी होगी 0. मैं छोटे मूल्यों के लिए एक अग्रणी शून्य चाहता हूं।
जवाबों:
String.format("%02X", value);
आप का उपयोग करते हैं Xबजाय x के रूप में Aristar ने सुझाव दिया है, तो आप उपयोग की जरूरत नहीं है .toUpperCase()।
Integer.toHexString(42);
Javadoc: http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#toHexString(int)
ध्यान दें कि यह आपको 2 से अधिक अंक दे सकता है, हालांकि! (एक पूर्णांक 4 बाइट्स है, इसलिए आप संभावित रूप से 8 वर्ण वापस पा सकते हैं।)
जब तक आप पूरी तरह से एकल-बाइट मान (255 या उससे कम) के साथ काम कर रहे हैं, तब तक यह सुनिश्चित करने के लिए कि आपका पैडिंग प्राप्त करने के लिए एक हैक का एक सा है।
Integer.toHexString(0x100 | 42).substring(1)
जावा में शून्य के साथ बाएं पैडिंग पूर्णांक (गैर-दशमलव प्रारूप) में कई और (और बेहतर) समाधान ।
String.format("%02X", (0xFF & value));
का उपयोग करें Integer.toHexString()। यदि आप केवल एक अंक के साथ समाप्त होते हैं, तो एक अग्रणी शून्य के साथ पैड करना न भूलें। यदि आपका पूर्णांक 255 से अधिक है, तो आपको 2 से अधिक अंक मिलेंगे।
StringBuilder sb = new StringBuilder();
sb.append(Integer.toHexString(myInt));
if (sb.length() < 2) {
sb.insert(0, '0'); // pad with leading zero if needed
}
String hex = sb.toString();
StringBuilderवास्तव में उपयोग एक सुधार है? pastebin.com/KyS06JMz
मैं हर बाइट के लिए अंतरिक्ष द्वारा अलग किए गए पूर्णांक के बराबर हेक्स मान का प्रतिनिधित्व करने के लिए एक स्ट्रिंग का उपयोग करता हूं EX: 4 बाइट्स में 260 की हेक्स वैल = 00 00 01 04
public static String getHexValString(Integer val, int bytePercision){
StringBuilder sb = new StringBuilder();
sb.append(Integer.toHexString(val));
while(sb.length() < bytePercision*2){
sb.insert(0,'0');// pad with leading zero
}
int l = sb.length(); // total string length before spaces
int r = l/2; //num of rquired iterations
for (int i=1; i < r; i++){
int x = l-(2*i); //space postion
sb.insert(x, ' ');
}
return sb.toString().toUpperCase();
}
public static void main(String []args){
System.out.println("hex val of 260 in 4 bytes = " + getHexValString(260,4));
}
गैब्रियलओशिरो के अनुसार, यदि आप चाहते हैं कि प्रारूप पूर्णांक 8 की लंबाई हो, तो यह प्रयास करें
String.format("0x%08X", 20) //print 0x00000014