2010-09-16 11 views

उत्तर

123

"यू" के साथ उपसर्ग किए गए आदिम डेटा प्रकार एक ही बिट आकार के साथ हस्ताक्षरित संस्करण हैं। प्रभावी रूप से, इसका मतलब है कि वे नकारात्मक संख्याओं को संग्रहित नहीं कर सकते हैं, लेकिन दूसरी ओर वे अपने हस्ताक्षरित समकक्षों के रूप में सकारात्मक संख्या को दो बार स्टोर कर सकते हैं। हस्ताक्षरित समकक्षों में "यू" उपसर्ग नहीं है।

पूर्णांक (32 बिट) के लिए सीमाएं हैं:

int: –2147483648 to 2147483647 
uint: 0 to 4294967295 

और लंबे समय के लिए (64 बिट):

long: -9223372036854775808 to 9223372036854775807 
ulong: 0 to 18446744073709551615 
+5

यह हाथ से बाहर काम करने के लिए काफी मजेदार है। एक 32-बिट हस्ताक्षरित चर संकेत (सकारात्मक या नकारात्मक) के लिए 1 बिट का उपयोग करता है, इसलिए उपयोग के लिए int और uint की तुलना करते समय -2^31 और + 2^31 - 1 –

+0

के बीच मूल्यों को स्टोर कर सकते हैं, जो संभव है? –

+0

सी ++ समकक्ष क्या है? – darkgaze

27

uint और ulongint और long के हस्ताक्षरित संस्करण हैं। इसका मतलब है कि वे नकारात्मक नहीं हो सकते हैं। इसके बजाय उनके पास एक बड़ा अधिकतम मूल्य है।

 
Type Min       Max       CLS-compliant 
int  -2,147,483,648    2,147,483,647     Yes 
uint 0        4,294,967,295     No 
long –9,223,372,036,854,775,808 9,223,372,036,854,775,807  Yes 
ulong 0        18,446,744,073,709,551,615 No 

अपने स्रोत कोड में एक शाब्दिक अहस्ताक्षरित int लिखने के लिए आपको उदाहरण 123U के लिए प्रत्यय u या U उपयोग कर सकते हैं।

यदि आप CLS-Compliant बनना चाहते हैं तो आपको अपने सार्वजनिक इंटरफ़ेस में यूंट और उलंग का उपयोग नहीं करना चाहिए।

अधिक जानकारी के लिए प्रलेखन पढ़ें:

वैसे, वहाँ भी short और ushort और byte और sbyte

+0

यह दिलचस्प है - सीएलएस के अनुपालन के बारे में आपका क्या मतलब है? लिंक int के लिए एमएसडीएन दस्तावेज में जाता है। यदि "सीएलएस" से आपका मतलब सी # भाषा का नमूना है तो मुझे समझ में नहीं आता है - स्पेक स्पष्ट रूप से यूंट और उलंग (सेक्शन 1.3) –

+0

@ इसाक सावो दोनों का वर्णन करता है: फिक्स्ड लिंक, त्रुटि को इंगित करने के लिए धन्यवाद। –

+0

@ इसाक सावो: यदि आप इंटरफ़ेस लिख रहे हैं तो सीएलएस-अनुपालन होना महत्वपूर्ण है जिसका उपयोग सी # की तुलना में अन्य .NET भाषाओं द्वारा किया जा सकता है। –

6

अंतर यह है कि uint और ulong अहस्ताक्षरित डेटा प्रकार के होते हैं है अर्थ सीमा अलग है: वे नकारात्मक मूल्यों को स्वीकार नहीं करते हैं:

int range: -2,147,483,648 to 2,147,483,647 
uint range: 0 to 4,294,967,295 

long range: –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 
ulong range: 0 to 18,446,744,073,709,551,615 
9

u का अर्थ unsigned है, इसलिए ulong बिना किसी संकेत के एक बड़ी संख्या है। आप से ulong में एक बड़ा मूल्य स्टोर कर सकते हैं, लेकिन कोई नकारात्मक संख्या अनुमत नहीं है।

long मूल्य 64-बिट में संग्रहीत किया जाता है, इसके पहले अंक यह दिखाने के लिए कि यह सकारात्मक/नकारात्मक संख्या है या नहीं। जबकि ulong भी 64-बिट है, सभी 64 बिट संख्या को स्टोर करने के लिए। तो अधिकतम उलंग 2 (64) -1 है, जबकि लंबा 2 (63) -1 है।

संबंधित मुद्दे