C# में ulong (या System.UInt64) एक 64-बिट अनसाइन्ड इंटीजर प्रकार है जो केवल गैर-ऋणात्मक मान संग्रहीत करता है। यह long (Int64) का अनसाइन्ड समकक्ष है।
उदाहरण
using System;
public class Demo
{
public static void Main()
{
// ULong मान घोषित करें (अंत में UL सफिक्स वैकल्पिक लेकिन अनुशंसित)
ulong val = 7712059531UL;
Console.WriteLine($"मान: {val}");
Console.WriteLine($"प्रकार: {typeof(ulong)}");
Console.WriteLine($"न्यूनतम मान: {ulong.MinValue}");
Console.WriteLine($"अधिकतम मान: {ulong.MaxValue}");
Console.WriteLine($"आकार: {sizeof(ulong)} बाइट्स");
}
}
आउटपुट
मान: 7712059531 प्रकार: System.UInt64 न्यूनतम मान: 0 अधिकतम मान: 18446744073709551615 आकार: 8 बाइट्स
ULong रेंज और स्थिरांक
| स्थिरांक | मान | विवरण |
|---|---|---|
ulong.MinValue | 0 | सबसे छोटा संभव मान |
ulong.MaxValue | 18,446,744,073,709,551,615 | सबसे बड़ा संभव मान (2^64 - 1) |
ULong के साथ संक्रियाएं
using System;
public class Demo
{
public static void Main()
{
ulong a = 100UL;
ulong b = 50UL;
// अंकगणितीय संक्रियाएं
Console.WriteLine($"जोड़: {a + b}"); // 150
Console.WriteLine($"घटाव: {a - b}"); // 50
Console.WriteLine($"गुणा: {a * b}"); // 5000
Console.WriteLine($"भाग: {a / b}"); // 2
Console.WriteLine($"शेष: {a % b}"); // 0
// बिटवाइज़ संक्रियाएं
Console.WriteLine($"AND: {a & b}"); // 16
Console.WriteLine($"OR: {a | b}"); // 118
Console.WriteLine($"XOR: {a ^ b}"); // 102
Console.WriteLine($"NOT a: {~a}"); // 18446744073709551515
// शिफ्ट संक्रियाएं
Console.WriteLine($"Left shift: {a << 2}"); // 400
Console.WriteLine($"Right shift: {a >> 1}"); // 50
}
}
साइन्ड और अनसाइन्ड के बीच रूपांतरण
using System;
public class Demo
{
public static void Main()
{
long signed = -100;
ulong unsigned = 100UL;
// स्पष्ट कास्टिंग आवश्यक (डेटा हानि संभव)
// ulong u = (ulong)signed; // कंपाइल त्रुटि नहीं लेकिन रनटाइम पर बड़ा मान बनेगा
// सुरक्षित रूपांतरण
if (signed >= 0)
{
ulong safe = (ulong)signed;
Console.WriteLine($"सुरक्षित रूपांतरण: {safe}");
}
// अनसाइन्ड से साइन्ड
if (unsigned <= long.MaxValue)
{
long safe = (long)unsigned;
Console.WriteLine($"सुरक्षित रूपांतरण: {safe}");
}
// Convert क्लास का उपयोग
ulong u = Convert.ToUInt64("18446744073709551615");
Console.WriteLine($"Convert से: {u}");
}
}
आउटपुट
जोड़: 150 घटाव: 50 गुणा: 5000 भाग: 2 शेष: 0 AND: 16 OR: 118 XOR: 102 NOT a: 18446744073709551515 Left shift: 400 Right shift: 50 सुरक्षित रूपांतरण: 100 सुरक्षित रूपांतरण: 100 Convert से: 18446744073709551615
सामान्य उपयोग के मामले
- बड़ी गणनाएं जहां ऋणात्मक मानों की आवश्यकता नहीं होती
- बिट मैनिपुलेशन और फ्लैग्स
- फाइल आकार, मेमोरी एड्रेस, नेटवर्क पैकेट काउंट
- क्रिप्टोग्राफी और हैश मान
- डेटाबेस में ऑटो-इनक्रीमेंट ID (बड़े सिस्टम्स में)
महत्वपूर्ण बिंदु
ulongC# कीवर्ड है,System.UInt64इसका .NET प्रकार नाम है- सफिक्स
ULयाulलिटरल के लिए उपयोग करें (उदाहरण:123UL) - ऋणात्मक मान संग्रहीत नहीं कर सकता - अंडरफ्लो से बचें
checkedसंदर्भ में ओवरफ्लो परOverflowExceptionफेंकता है- CLS-अनुरूप (CLS-compliant) नहीं है - पब्लिक API में सावधानी से उपयोग करें