मैं एक सरणी में एक द्विआधारी स्ट्रिंग के रूप में एक नंबर स्टोर करने के लिए कोशिश कर रहा हूँ, लेकिन मैं कितने बिट्स के रूप में यह स्टोर करने के लिए निर्दिष्ट करने के लिए की जरूरत है।(जावा) बिट्स (लम्बाई) की संख्या निर्दिष्ट करें जब स्ट्रिंग के लिए द्विआधारी संख्या परिवर्तित?
उदाहरण के लिए, मैं एक स्ट्रिंग "00" की जरूरत है अगर मैं 0 दो के साथ बिट्स स्टोर करने के लिए की जरूरत है। या 6 बिट्स के साथ 1010 "001010"।
क्या कोई मदद कर सकता है?
संपादित करें: धन्यवाद दोस्तों, क्योंकि मैं सामान्य रूप से गणित/प्रोग्रामिंग में बकवास कर रहा हूं, मैं डेविड के सबसे सरल समाधान के साथ गया हूं। कुछ ऐसा:
binaryString.append(Integer.toBinaryString(binaryNumber));
for(int n=binaryString.length(); n<numberOfBits; n++) {
binaryString.insert(0, "0");
}
ऐसा लगता है कि यह बहुत अक्षम है, इसलिए जब तक यह बहुत अक्षम नहीं है, मैं इसके साथ जाऊंगा।
यह नकारात्मक संख्याओं और संख्याओं के साथ काम नहीं करेगा 2^31 से अधिक है, क्योंकि वे जावा इंटीजर के अंदर फिट नहीं होते हैं। BigInteger स्वचालित रूप से मान को संग्रहीत करने के लिए उपयोग की जाने वाली बिट्स की संख्या का आकार बदलता है। 0 अभी भी आगे डालने के लिए आप अभी भी अपनी पैडिंग विधि का उपयोग कर सकते हैं। –
क्षमा करें, मुझे मार्क स्वीकार्य चीज़ के बारे में पता नहीं था। फर्नांडो के सिर के लिए धन्यवाद लेकिन मुझे नहीं लगता कि मुझे इसे किसी भी नकारात्मक संख्या या 2^16 से बड़ा कुछ भी करने की आवश्यकता होगी, इसलिए मुझे लगता है कि यह ठीक होना चाहिए। वैसे भी अगर मैं BigInteger पर एक नजर डालेगा। – joinJpegs