दिलचस्प पोस्ट
WAIT और ब्लॉक किए गए थ्रेड के बीच का अंतर क्या मैं जावास्क्रिप्ट में कंसोल ऑब्जेक्ट का विस्तार कर सकता हूं? टी-एसक्यूएल 2 तिथियों के बीच सभी दिनांक प्राप्त करते हैं JQuery का उपयोग कर HTML तत्वों के बीच सफेद स्थान और लाइन ब्रेक निकालें अमेज़ॅन ईसी 2, आईएसएडीबी: एमएमएपी (एक्स बाइट्स) असफल; आईएसडीबी प्रारंभिक रूप से शुरू हो रहा है; गलत 12 क्या करता है। आरडी में आंकड़ों के लिए एसडी स्टैंड स्कला में मान्य पहचानकर्ता वर्ण एचडीएफ 5 (पीईटीबल्स) में एमएमपी स्पार्स मैट्रिक्स को संग्रहीत करना SDKToolsPath को पढ़ने में MSBuild चलाना विफल रहता है Postgres में CSV फ़ाइल से मूल्यों के साथ चयनित पंक्तियों को कैसे अपडेट करें? विशिष्ट URL में डेटा को कैसे सी # में WebClient का उपयोग करें जेएक्स-आरएस फ्रेमवर्क नामस्थान के बिना कैसे मार्शल करें? स्ट्रिंग को इसके समतुल्य LINQ अभिव्यक्ति ट्री में कनवर्ट कैसे करें? पृष्ठभूमि छवि डेटा को सीएसएस में Base64 अच्छा या बुरा अभ्यास के रूप में एम्बेड करना है?

एनएटी में एक बिट सरणी में int को परिवर्तित करें

मैं एक बिट को सरणी में कैसे परिवर्तित कर सकता / सकती हूं?

यदि मैं उदाहरण 3 के साथ एक पूर्णांक चाहता हूँ, तो मुझे एक सरणी चाहिए, जिसकी लंबाई 8 है और ऐसा लगता है:

0 0 0 0 0 0 1 1 

इनमें से प्रत्येक नंबर सरणी में एक अलग स्लॉट में है, जिसका आकार 8 है

Solutions Collecting From Web of "एनएटी में एक बिट सरणी में int को परिवर्तित करें"

Int 'x' को बदलने के लिए

 int x = 3; 

एक तरफ, इंट पर हेरफेर द्वारा:

 string s = Convert.ToString(x, 2); //Convert to binary in a string int[] bits= s.PadLeft(8, '0') // Add 0's from left .Select(c => int.Parse(c.ToString())) // convert each char to int .ToArray(); // Convert IEnumerable from select to Array 

वैकल्पिक रूप से, बिटअरे कक्षा-

 BitArray b = new BitArray(new byte[] { x }); int[] bits = b.Cast<bool>().Select(bit => bit ? 1 : 0).ToArray(); 

BitArray कक्षा का उपयोग करें

 int value = 3; BitArray b = new BitArray(new int[] { value }); 

यदि आप बिट्स के लिए एक सरणी प्राप्त करना चाहते हैं, तो आप BitArray.CopyTo विधि का उपयोग कर एक bool[] सरणी के साथ कर सकते हैं।

 bool[] bits = new bool[b.Count]; b.CopyTo(bits, 0); 

ध्यान दें कि बिट्स को कम से कम महत्वपूर्ण से महत्वपूर्ण तक संग्रहित किया जाएगा, ताकि आप Array.Reverse का उपयोग करना Array.Reverse

और अंत में, अगर आपको बुलियन के बजाए प्रत्येक बिट के लिए 0 एस और 1 एस प्राप्त करना है (मैं प्रत्येक बिट को स्टोर करने के लिए एक byte का उपयोग कर रहा हूं; कम से कम एक int से कम):

 byte[] bitValues = bits.Select(bit => (byte)(bit ? 1 : 0)).ToArray(); 

Convert.ToString (value, 2) प्रयोग करें। Convert.ToString (value, 2)

तो आपके मामले में

string binValue = Convert.ToString (3, 2);

मैं बस एक उदाहरण में गया जहां …

 int val = 2097152; var arr = Convert.ToString(val, 2).ToArray(); var myVal = arr[21]; 

… मैंने उन परिणामों का उत्पादन नहीं किया जो मैं देख रहा था। ऊपर 'myVal' में, स्थिति 21 में सरणी में संग्रहित मूल्य '0' था यह एक '1' होना चाहिए था मुझे इस बात का यकीन नहीं है कि मुझे इसके लिए एक गलत मान क्यों प्राप्त हुआ और जब तक मुझे किसी अन्य वस्तु को INT को थोड़ा सरणी में परिवर्तित करने के लिए सी # में नहीं मिला,

 int val = 2097152; var arr = new BitArray(BitConverter.GetBytes(val)); var myVal = arr[21]; 

इसने परिणाम 'सच' को 'मायवल' के लिए बूलियन मान के रूप में पेश किया

मुझे पता है कि यह मूल्य प्राप्त करने का सबसे कारगर तरीका नहीं हो सकता है, लेकिन यह बहुत सीधे, सरल और पठनीय था।

 int value = 3; var array = Convert.ToString(value, 2).PadLeft(8, '0').ToArray(); 

मैं इसे एक लाइनर में इसे नीचे दिखाएगा जैसा हासिल होगा:

 using System; using System.Collections; namespace stackoverflowQuestions { class Program { static void Main(string[] args) { //get bit Array for number 20 var myBitArray = new BitArray(BitConverter.GetBytes(20)); } } } 

कृपया ध्यान दें कि एक BitArray प्रत्येक तत्व को BitArray रूप में संग्रहीत किया गया है जैसा कि नीचे स्नैपशॉट में दिखाया गया है:

यहां छवि विवरण दर्ज करें

नीचे कोड काम करता है:

 if (myBitArray[0] == false) { //this code block will execute } 

लेकिन नीचे कोड बिल्कुल संकलन नहीं करता है:

 if (myBitArray[0] == 0) { //some code }