पर वापस कैसे करें, मैं एक विधि लिख रहा हूं जहां मैं int मानों को बाइनरी तारों में परिवर्तित कर रहा हूं और उन्हें संग्रहीत कर रहा हूं। मैं ऐसा करने के लिए विधि Integer.toBinaryString विधि का उपयोग कर रहा हूं, और यह सही तरीके से काम कर रहा है, लेकिन समस्या यह है कि मुझे स्ट्रिंग में बिल्कुल 4 बिट्स को वापस करने की विधि की आवश्यकता है (यह कभी और अधिक नहीं होगा क्योंकि संख्याएं काफी बड़ी नहीं हैं)।Integer.toBinaryString को कम से कम 4 बिट्स
int value5 = 3;
String strValue5 = Integer.toBinaryString(value5);
for(int index = 0; index < 4; index++){
sBoxPostPass[4][index] = strVal5.charAt(index);
}
जाहिर है, यह एक ArrayOutOfBoundsException क्योंकि strValue5 == 11
और नहीं 0011
, जैसे कि यह होने की जरूरत है फेंक देगा: यहाँ मेरी कोड और जहाँ समस्या उत्पन्न हो रही है की एक उदाहरण है। मुझे उम्मीद है कि यह पर्याप्त रूप से स्पष्ट है। मदद के लिए अग्रिम धन्यवाद।
मैं आम तौर पर परिणाम लेता हूं, आगे के अतिरिक्त अतिरिक्त शून्य का एक गुच्छा जोड़ता हूं, फिर वांछित लंबाई के लिए "पूंछ" लेता हूं। कोई गणना की आवश्यकता नहीं है। –
अच्छी कॉल - मैं यह करूँगा –
http://stackoverflow.com/questions/4421400/how-to-get-0-padded-binary-representation-of-an-integer-in-java – MacAnthony