मैं एक बाइट सरणी में एक बिट स्ट्रिंग लिखना चाहता हूं जैसे कि बाइट सरणी में शाब्दिक रूप से बिटस्ट्रिंग होता है
मेरे पास "10000110" मान के साथ एक स्ट्रिंग है और मैं इसे लंबाई 5 के साथ बाइट सरणी में परिवर्तित करना चाहता हूं। मैं परिणामी बाइट सरणी बिल्कुल इस बिट स्ट्रिंग को स्टोर करना चाहता हूं, इसलिए code_word_array [i] i = 0,1 के लिए 0 है, २,३ और "१००००११०" i = ४ . के लिए
byte[] code_word_array = ByteBuffer.allocate(5)
.putInt(Integer.parseInt("10000110", 2))
.array();
मुझे इस कोड के साथ जो मिल रहा है वह है code_word_array[i] i=0,1,2,4 के लिए 0 है और i=3 के लिए -122 है। यह मान अंतिम बाइट में संग्रहीत क्यों नहीं है?
1 उत्तर
आपके कोड में यह कहने के लिए कुछ भी नहीं है कि मान को अंतिम बाइट में संग्रहीत करने की आवश्यकता है। चूंकि बाइटबफर डिफ़ॉल्ट रूप से बड़े एंडियन का उपयोग करता है, मान चौथे बाइट में होता है।
मैं सिर्फ एक बाइट का उपयोग करूंगा []
byte[] code_word_array = new byte[5];
code_word_array[4] = (byte) Integer.parseInt("10000110", 2);
या
code_word_array[4] = 0b10000110;
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।