2011-01-19 14 views

उत्तर

20

संख्या ही हमेशा एक गैर नकारात्मक संख्या के रूप में व्याख्या की है। हेक्साडेसिमल स्थिरांक में ऋणात्मक संख्या व्यक्त करने के लिए कोई संकेत या कोई अंतर्निहित तरीका नहीं है। स्थिरता का प्रकार इनमें से पहला है जो उनके मूल्य का प्रतिनिधित्व कर सकता है:

int 
unsigned int 
long int 
unsigned long int 
long long int 
unsigned long long int 
+0

मुझे यह सही घोषित करने की विशेषज्ञता की कमी है, लेकिन यह दूसरे उत्तर की तुलना में अधिक समझ में आता है। – delnan

+0

ध्यान दें कि परिणामस्वरूप, 0x8000 या तो आकार (int) 2 या 4 है या नहीं, इस पर निर्भर करता है या हस्ताक्षरित हो सकता है। अगर आपको वास्तव में 'हस्ताक्षरित' की ज़रूरत है तो बस 'यू' संलग्न करें। – anatolyg

+1

@anatolyg: मुझे यकीन नहीं है कि आपका मतलब "यक" से क्या है। यह हमेशा सकारात्मक रहेगा और यह हमेशा सही मूल्य में परिवर्तित हो जाएगा यदि किसी अन्य प्रकार को असाइन या प्रचारित किया जाता है जहां मूल्य अभी भी सीमा में है जो मुझे काफी समझदार और वांछनीय व्यवहार जैसा लगता है। –

12

यह उन्हें int शाब्दिक रूप में व्यवहार करता है (मूल रूप से, पर हस्ताक्षर किए पूर्णांक के रूप में!)। एक अहस्ताक्षरित शाब्दिक लिखने के लिए सिर्फ अंत में u जोड़ें:

0x23FEu 
+2

मुझे नहीं लगता कि आप इस तरह के कथन को छोड़ सकते हैं। E.g बशर्ते कि 'int' की चौड़ाई 32 बिट मान' 0x8000' 'हस्ताक्षरित '(अर्थात्' INT_MAX + 1') है और 'हस्ताक्षरित' (और' INT_MIN') नहीं है। –

+0

@ जेन्सगस्टेड: संभवतः आपका मतलब है कि यदि 'int' की चौड़ाई ** 16 ** बिट है तो' 0x8000' 'हस्ताक्षरित 'होगी? –

+1

@ चार्ल्स, शायद। बिट्स की गिनती खुद मेरी शक्ति कभी नहीं थी :) –