Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การตีความจำนวนเต็มมีเครื่องหมาย 64 บิตใหม่เป็นจำนวนจุดลอยตัวความแม่นยำสองเท่าใน C#

ภาพรวม

เมธอด BitConverter.Int64BitsToDouble(Int64) นำรูปแบบบิตของ long (64 บิต) มาตีความใหม่เป็น double (IEEE 754 double-precision) โดยไม่แปลงค่าตัวเลข

ตัวอย่าง 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);
    }
}

ผลลัพธ์ตัวอย่าง 1

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);
    }
}

ผลลัพธ์ตัวอย่าง 2

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

สรุป

  • ไม่ใช่การแปลงค่า (conversion) แต่เป็นการ ตีความบิตใหม่ (reinterpretation)
  • ผลลัพธ์มักเป็นค่าที่เล็กมากหรือ NaN ขึ้นอยู่กับรูปแบบบิต
  • ใช้ในระดับต่ำ เช่น serialization, interop, หรือการทำงานกับข้อมูลดิบ