2010-01-22 6 views
18

वहाँ एक नकारात्मक मूल्य हेक्साडेसिमल सी # में शाब्दिक का उपयोग करने का int स्थापित करने के लिए कोई तरीका है? मैं Integer literals पर विनिर्देश की जाँच की है, लेकिन यह कुछ भी उल्लेख नहीं किया।सी # में हेक्साडेसिमल शाब्दिक का उपयोग करके नकारात्मक मूल्यों के ints स्थापना

उदाहरण के लिए:

int a = -1;   // Allowed 
int b = 0xFFFFFFFF; // Not allowed? 

हेक्साडेसिमल नोटेशन अपने आवेदन के लिए स्पष्ट है, और मैं uint रों उपयोग करने के लिए नहीं है क्योंकि मैं कुछ अतिरिक्त कास्टिंग क्या करने की जरूरत हैं पसंद करेंगे।

+2

यहाँ एक बार देख ले: http://stackoverflow.com/questions/319993/c-hexadecimal-notation-and-signed-integers –

उत्तर

22

अनियंत्रित कीवर्ड का प्रयोग करें।

unchecked 
{ 
    int b = (int)0xFFFFFFFF;  
} 

या भी कम

int b = unchecked((int)0xFFFFFFFF); 
1

मुझे लगता है कि आप सी # साथ -0x1 उपयोग कर सकते हैं

+1

हाँ, यह मान्य सिंटैक्स, लेकिन में निषेध क्या करने वाले है मेरी यह पता लगाने के लिए कि असली मूल्य क्या है थोड़ा सा थकाऊ है। –

0

आप "कन्वर्ट" वर्ग का उपयोग कर सकते हैं:

string hex = "FF7F"; 
int myInt = Convert.ToInt32(hex, 16); 
1

आप इसे डाल सकते हैं और एक अनियंत्रित संदर्भ में डाल करने के लिए की है।

unchecked { 
    int i = (int)0xFFFFFFFF; 
} 
1

यह नौकरी अनचेक संचालन या कास्टिंग के बिना किया जाएगा।

int i = 0xFF << 24 | 0xFF << 16 | 0xFF << 8 | 0xFF; 
संबंधित मुद्दे