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

ฟิลด์ UInt64.MaxValue ใน C# พร้อมตัวอย่าง


บทนำ

ฟิลด์ UInt64.MaxValue ใน C# แสดงค่าสูงสุดของจำนวนเต็ม 64 บิตที่ไม่มีเครื่องหมาย (unsigned long) ซึ่งมีค่าเท่ากับ 18,446,744,073,709,551,615

ไวยากรณ์ (Syntax)

public const ulong MaxValue = 18446744073709551615;

ตัวอย่างที่ 1: แสดงค่าสูงสุดของ UInt64

using System;

public class Demo 
{
    public static void Main()
    {
        ulong val1 = 879879879;
        ulong val2 = 464556565;
        
        Console.WriteLine("Value1 = " + val1);
        Console.WriteLine("Value2 = " + val2);
        Console.WriteLine("HashCode for value1 = " + val1.GetHashCode());
        Console.WriteLine("HashCode for value2 = " + val2.GetHashCode());
        Console.WriteLine("Are they equal? = " + val1.Equals(val2));
        
        TypeCode type1 = val1.GetTypeCode();
        TypeCode type2 = val2.GetTypeCode();
        Console.WriteLine("TypeCode for val1 = " + type1);
        Console.WriteLine("TypeCode for val2 = " + type2);
        
        Console.WriteLine("Maximum Value = " + UInt64.MaxValue);
    }
}

ผลลัพธ์

Value1 = 879879879
Value2 = 464556565
HashCode for value1 = 879879879
HashCode for value2 = 464556565
Are they equal? = False
TypeCode for val1 = UInt64
TypeCode for val2 = UInt64
Maximum Value = 18446744073709551615

ตัวอย่างที่ 2: ตรวจสอบขอบเขตก่อนแปลงค่า

using System;

public class Demo 
{
    public static void Main()
    {
        ulong[] val = { 8998, 899898778, 878787878 };
        ulong res;
        
        foreach (ulong a in val)
        {
            if (a >= UInt64.MinValue && a <= UInt64.MaxValue)
            {
                res = Convert.ToUInt64(a);
                Console.WriteLine("Converted: " + res);
            }
            else
            {
                Console.WriteLine("Not Possible");
            }
        }
    }
}

ผลลัพธ์

Converted: 8998
Converted: 899898778
Converted: 878787878

สรุป

ฟิลด์ UInt64.MaxValue ให้ค่าขอบเขตสูงสุดของชนิดข้อมูล ulong ซึ่งมีค่ามากกว่า Int64.MaxValue ประมาณสองเท่า เนื่องจากไม่ได้จัดสรรบิตสำหรับเครื่องหมาย ใช้ร่วมกับ MinValue เพื่อการตรวจสอบขอบเขตที่สมบูรณ์