How to convert decimal string value to hex byte array in C#? -


मेरे पास एक इनपुट स्ट्रिंग है जो दशमलव प्रारूप में है:

  var decString = "12345678 "; // हेक्स में यह 0xBC614E  

है और मैं इसे एक निश्चित लंबाई हेक्स बाइट सरणी में परिवर्तित करना चाहता हूं:

  बाइट हेक्साइट्स [] // = { 0x00, 0x00, 0xBC, 0x61, 0x4E}  

मैं कुछ ऐसा करने के लिए कुछ जटिल तरीके से आया हूँ, लेकिन मुझे संदेह है कि एक साफ दो-लाइनर है! कोई विचार? धन्यवाद

अद्यतन:

ठीक है मुझे लगता है कि मैंने अनजाने में 5 बाइट्स का उदाहरण दिखाकर जटिलता का एक स्तर जोड़ा है। अधिकतम वास्तव में 4 बाइट्स (एफएफ एफएफ एफएफ एफएफ) = 42 9 4967295. इंट 64 ठीक है।

यदि आप आपके पूर्णांक के आकार की कोई विशेष सीमा नहीं है, तो आप इस रूपांतरण के लिए उपयोग कर सकते हैं:

  var b = BigInteger.Parse ("12345678"); Var बीबी = बी.ToByteArray (); विदेशी मुद्रा (बीबी में var s) {Console.Write ("{0: x}", s); }  

यह प्रिंट करता है

  4e 61 bc 0  

यदि बाइट्स का क्रम महत्वपूर्ण है, तो आपको बाइट्स की सरणी को उल्टा करें।

अधिकतम वास्तव में 4 बाइट्स (एफएफ एफएफ एफएफ एफएफ) = 4294967295

आप कर सकते हैं इसके लिए uint का उपयोग करें - इस तरह से:

  यूआईटी डेटा = यूआईटी। पर्स ("12345678"); बाइट [] बाइट्स = नया [] (बाइट) ((डेटा & gt; & gt; 24) & amp; 0xFF), (बाइट) ((डेटा & gt; 16) & amp; 0xFF), (बाइट) ((डेटा & gt; & gt; 8) और 0x एफएफ), (बाइट) ((डेटा & gt; & gt; 0) & amp; 0xFF)};  


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -