[Java] चार और ईआर जोड़ना


Answers

नंबर 1 एएससीआईआई कोड 49 है। कंपाइलर एकमात्र समझदार बात कर रहा है जो आपके अनुरोध के साथ कर सकता है, और int को टाइपकास्टिंग कर रहा है।

Question

मेरी समझ के लिए एक चरित्र एक अक्षर है, यह एक अक्षर, एक अंक , एक विराम चिह्न, एक टैब, एक स्थान या कुछ इसी तरह की है। और इसलिए जब मैं करता हूं:

char c = '1';
System.out.println(c);

आउटपुट 1 वास्तव में मुझे उम्मीद थी। तो ऐसा क्यों है कि जब मैं ऐसा करता हूं:

int a = 1;
char c = '1';
int ans = a + c;
System.out.println(ans);

मैं 50 उत्पादन के साथ समाप्त?




'1' एक अंक है, एक संख्या नहीं है, और एएससीआईआई में मूल्य 49 के रूप में एन्कोड किया गया है।

जावा में वर्णों को चर में प्रोन्नत किया जा सकता है, इसलिए यदि आप '1' जैसे किसी भी तरह के एक इंरे को जोड़ने के लिए कहें, तो '4', उपनाम 49, अधिक संकीर्ण टाइप चार को इंट को बढ़ावा दिया जाता है, 49, + 1 => 50 प्राप्त होता है

ध्यान दें कि प्रत्येक गैर-अंकीय अक्ष को उसी तरह जोड़ा जा सकता है:

'a' + 0 = 97
'A' + 0 = 65
' ' + 0 = 32



क्योंकि आप सी (1) के मान को 'ए' के ​​यूनिकोड मान में जोड़ रहे हैं, जो 49 है। पहले 128 यूनिकोड पॉइंट मान एएससीआईआई के समान हैं, आप यहां यहां पा सकते हैं:

http://www.asciitable.com/

नोटिस '1' दिसंबर है 49. बाकी यूनिकोड अंक यहां हैं:

http://www.utf8-chartable.de/