Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में BitConverter.Int64BitsToDouble() मेथड - 64-बिट इंटीजर को डबल में पुनर्व्याख्या करें

C# में BitConverter.Int64BitsToDouble() मेथड निर्दिष्ट 64-बिट साइन्ड इंटीजर को डबल-प्रिसिजन फ्लोटिंग-पॉइंट संख्या के रूप में पुनर्व्याख्या (reinterpret) करता है। यह बिट पैटर्न को बदले बिना, केवल उसके अर्थ को बदलता है।

सिंटैक्स

public static double Int64BitsToDouble (long val);

पैरामीटर val परिवर्तित की जाने वाली संख्या है।

उदाहरण 1: बड़ा इंटीजर मान

using System; 

public class Demo 
{ 
    public static void Main()
    { 
        long d = 9846587687; 
        Console.Write("Value (64-bit signed integer) = " + d); 
        
        double res = BitConverter.Int64BitsToDouble(d); 
        Console.Write("\nValue (double-precision floating point number) = " + res); 
    } 
}

आउटपुट

Value (64-bit signed integer) = 9846587687
Value (double-precision floating point number) = 4.86486070491012E-314

उदाहरण 2: छोटा मान

using System; 

public class Demo 
{ 
    public static void Main()
    { 
        long d = 20; 
        Console.Write("Value (64-bit signed integer) = " + d); 
        
        double res = BitConverter.Int64BitsToDouble(d); 
        Console.Write("\nValue (double-precision floating point number) = " + res); 
    } 
}

आउटपुट

Value (64-bit signed integer) = 20
Value (double-precision floating point number) = 9.88131291682493E-323

कैसे काम करता है: IEEE 754 बिट लेआउट

64-बिट डबल (IEEE 754) की संरचना:

  • बिट 63: साइन (0 = धनात्मक, 1 = ऋणात्मक)
  • बिट 62-52 (11 बिट्स): एक्सपोनेंट (बायस 1023)
  • बिट 51-0 (52 बिट्स): मेंटिसा/सिग्निफिकेंड

उदाहरण 20 का विश्लेषण

long val = 20; // बाइनरी: 0000...00010100 (बिट 2 और 4 सेट)
double d = BitConverter.Int64BitsToDouble(val);
// बिट्स 2 और 4 सेट होने का अर्थ: बहुत छोटा सबनॉर्मल संख्या
// परिणाम: 9.88e-323 (double.MinValue के करीब)

उपयोग के मामले

  • निम्न-स्तरीय बिट मैनिपुलेशन
  • सीरियलाइज़ेशन/डिसीरियलाइज़ेशन जहां बिट्स संरक्षित रखने हों
  • इंटरऑप नेटिव कोड के साथ (C/C++ यूनियन के समान)
  • टेस्टिंग विशेष फ्लोटिंग-पॉइंट मान उत्पन्न करने के लिए
  • हैशिंग/क्रिप्टोग्राफी जहां बिट पैटर्न मायने रखते हैं

पूरक मेथड: DoubleToInt64Bits

// राउंड-ट्रिप
double original = 123.456;
long bits = BitConverter.DoubleToInt64Bits(original);
double restored = BitConverter.Int64BitsToDouble(bits);
Console.WriteLine(original == restored); // True

मुख्य बिंदु

  • मान नहीं बदलता - केवल बिट्स की व्याख्या बदलता है
  • DoubleToInt64Bits() के साथ उलटा किया जा सकता है
  • NaN, Infinity, सबनॉर्मल संख्याएं सभी संरक्षित रहती हैं
  • Endianness: सिस्टम के एंडियननेस का उपयोग करता (आमतौर पर लिटिल-एंडियन)
  • प्रदर्शन: बहुत तेज (सिर्फ बिट रीइंटरप्रिटेशन)
  1. - C# में Char.IsLetterOrDigit() मेथड

    C# में Char.IsLetterOrDigit() मेथड यह दर्शाता है कि निर्दिष्ट यूनिकोड वर्ण अक्षर या दशमलव अंक के रूप में वर्गीकृत है या नहीं। सिंटैक्स निम्नलिखित सिंटैक्स है: public static bool IsLetterOrDigit (char ch); यहाँ, ch मूल्यांकन के लिए यूनिकोड वर्ण है। उदाहरण आइए अब Char.IsLetterOrDigit() मेथड को लागू

  1. - C# में Int16.CompareTo() मेथड

    C# में Int16.CompareTo() मेथड का उपयोग इस इंस्टेंस की तुलना किसी निर्दिष्ट ऑब्जेक्ट या किसी अन्य Int16 इंस्टेंस से करने और एक पूर्णांक लौटाने के लिए किया जाता है जो इंगित करता है कि इस इंस्टेंस का मान निर्दिष्ट ऑब्जेक्ट या अन्य Int16 इंस्टेंस के मान से कम, बराबर या अधिक है। सिंटैक्स निम्नलिखित सिं

  1. - C# में BitConverter.DoubleToInt64Bits() मेथड - डबल को 64-बिट इंटीजर में बदलें

    C# में BitConverter.DoubleToInt64Bits() मेथड निर्दिष्ट डबल-प्रिसिजन फ्लोटिंग-पॉइंट संख्या को 64-बिट साइन्ड इंटीजर में परिवर्तित करता है। यह फ्लोटिंग-पॉइंट मान के बिट प्रतिनिधित्व को संरक्षित करता है। सिंटैक्स public static long DoubleToInt64Bits (double val); पैरामीटर val परिवर्तित की जाने वाली संख