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
Post a Comment