2009-03-27 6 views
6

के लिए लंबी कन्वर्ट करने के लिए तो मैं BitConverter के साथ प्रयास करें, यह एक बाइट सरणी की आवश्यकता है और मैं है.मुझे एक Int32 है और मैं इसे UInt32 को परिवर्तित करना चाहते हैं नहीं है।सी #: कैसे Ulong

C++ में वहाँ उस के साथ कोई समस्या नहीं थी।

+0

कुछ हद तक उलझन में क्या तुम यहाँ पूछ रहे हैं साथी - देशांतर, बाइट सरणियों, और ints - आप विस्तार से बता सकते हैं? – Chris

उत्तर

17

एक साधारण डाली आप सभी की जरूरत है। चूंकि यह करने के लिए परिशुद्धता खोना संभव है, रूपांतरण स्पष्ट है।

long x = 10; 
ulong y = (ulong)x; 
+7

बड़ा नकारात्मक के साथ से ऊपर जाने का यह संभव नहीं है? आप इसके बजाय छेड़छाड़ करने के लिए 'अनचेक' का उपयोग कर सकते हैं: http://msdn.microsoft.com/en-us/library/a569z7k8(VS.71).aspx –

1

एक ULONG करने के लिए एक लंबे समय के बदलने के लिए, बस इसे डाली: अगर यह एक नकारात्मक संख्या है

long a; 
ulong b = (ulong)a; 

सी # नहीं एक अपवाद फेंक देते हैं।

+0

मुझे यह नहीं लगता कि यह नकारात्मक मान के साथ अपवाद फेंकता है, लेकिन आप जो उम्मीद करेंगे वह नहीं होगा ... यहां पर लैपटॉप नहीं है (लैपटॉप), या इसका परीक्षण करेंगे। – Tracker1

+0

यह नहीं होगा, लेकिन पहली बिट को साइन बिट के बजाय सबसे महत्वपूर्ण बिट के रूप में व्याख्या किया जाएगा। – DuneCat

+0

यह फेंक नहीं देगा। आपको अपने उत्तर को संशोधित करने पर विचार करना चाहिए अन्यथा यह भ्रामक हो सकता है। – KFL

1
Int32 i = 17; 
UInt32 j = (UInt32)i; 

संपादित करें: है कि क्या आप एक लंबे या किसी पूर्णांक है प्रश्न स्पष्ट नहीं है?

+0

'जैसे लपेटना चाहिए, मुझे लगता है कि जॉन सी या सी ++ में "पुरानी" लम्बाई का जिक्र कर रहा है जो 32 बिट चौड़े थे। –

+0

सवाल सी # कहता है? –

+0

मेरा मतलब था कि उसने आदत से इसका उल्लेख किया था। –

1

इस समारोह को देखते हुए:

string test(long vLong) 
{ 
    ulong vULong = (ulong)vLong; 
    return string.Format("long hex: {0:X}, ulong hex: {1:X}", vLong, vULong); 
} 

और यह उपयोग:

string t1 = test(Int64.MinValue); 
    string t2 = test(Int64.MinValue + 1L); 
    string t3 = test(-1L); 
    string t4 = test(-2L); 

यह परिणाम होगा:

t1 == "long hex: 8000000000000000, ulong hex: 8000000000000000" 
    t2 == "long hex: 8000000000000001, ulong hex: 8000000000000001" 
    t3 == "long hex: FFFFFFFFFFFFFFFF, ulong hex: FFFFFFFFFFFFFFFF" 
    t4 == "long hex: FFFFFFFFFFFFFFFE, ulong hex: FFFFFFFFFFFFFFFE" 

आप देख सकते हैं बिट्स, पूरी तरह से संरक्षित कर रहे हैं यहां तक ​​कि नकारात्मक मूल्यों के लिए।