2009-11-17 15 views
30

मैं एक बाइट सरणी (मैं जावा का उपयोग कर रहा) घोषित किया है:System.out.println का उपयोग कर हेक्साडेसिमल में बाइट्स कैसे मुद्रित करें?

byte test[] = new byte[3]; 
test[0] = 0x0A; 
test[1] = 0xFF; 
test[2] = 0x01; 

मैं कैसे सरणी में संग्रहीत विभिन्न मूल्यों प्रिंट कर सकता है?

यदि मैं System.out.println (परीक्षण [0]) का उपयोग करता हूं तो यह '10' प्रिंट करेगा। मैं इसे 0x0A

प्रिंट करना चाहता हूं सभी को धन्यवाद!

उत्तर

56
System.out.println(Integer.toHexString(test[0])); 

या (सुंदर प्रिंट)

System.out.printf("0x%02X", test[0]); 

या (सुंदर प्रिंट)

System.out.println(String.format("0x%02X", test[0])); 
+4

+1। –

+2

इनमें से सभी में से, 'System.out.printf' शायद सबसे अच्छा विचार है। – abyx

+0

बहुत उपयोगी, –

2
byte test[] = new byte[3]; 
test[0] = 0x0A; 
test[1] = 0xFF; 
test[2] = 0x01; 

for (byte theByte : test) 
{ 
    System.out.println(Integer.toHexString(theByte)); 
} 

नोट: परीक्षण [1] = 0xFF; यह संकलित नहीं होगा, आप 255 (एफएफ) को बाइट में नहीं डाल सकते हैं, जावा एक इंट का उपयोग करना चाहेंगे।

आप ऐसा करने में सक्षम हो सकती है ...

test[1] = (byte) 0xFF; 

+0

आप निश्चित रूप से बाइट बी = 255 & 0xFF; और फिर इसे पढ़ते समय int गणना = (0xFF और b) + 5; 255 को पढ़ने के लिए –

7
for (int j=0; j<test.length; j++) { 
    System.out.format("%02X ", test[j]); 
} 
System.out.println(); 
(अगर मैं अपने आईडीई मैं Stackoverflow पर हो wouln't के पास था) मैं अगर मैं अपने आईडीई के पास था परीक्षण था Printf उदाहरण देने के लिए
संबंधित मुद्दे