2013-02-19 10 views
16

मैं इस char char ch = '\117'जावा में वैध वर्ण अक्षर ' 117' क्यों है?

में

प्रतिनिधित्व किस तरह '\117' है के रूप में परिभाषित देखा है?

मैं जानता हूँ कि escaped-sequence'\n' है, उदाहरण के लिए, या unicode`\udddd', जहां d एक भी हेक्स अंकों है, लेकिन मैं अपने पूरे जीवन में '\117' के रूप में ऐसी बात कभी नहीं देखा है! आश्चर्य की बात है, यह संकलित करता है! (और आउटपुट O)

+11

सी (http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html [चरित्र और स्ट्रिंग literals के लिए दृश्यों भागने] # jls-3.10.6)। – EJP

+1

यह ऑक्टल नोटेशन है। देखें [जावा ऑक्टल क्यों बचता है केवल 255 तक जाता है?] (Http://stackoverflow.com/q/9543026/111424), विशेष रूप से [लूट मेयोफ का जवाब] (http://stackoverflow.com/a/9543611/111424)। यह शायद पुरानी भाषाओं और प्रोग्रामर के साथ संगतता के लिए है। –

उत्तर

11

यह वह जगह है ascii के लिए ऑक्टल प्रतिनिधित्व। आप इसके बारे में बहुत अधिक मान देख सकते हैं यहां: http://donsnotes.com/tech/charsets/ascii.html

8

यह सी/सी ++ से होल्डओवर ऑक्टल में है।

3

ऐसा इसलिए है क्योंकि इसका कैप्टियल चरित्र का अस्थायी प्रतिनिधित्व है।

यदि आप अपना char ch='\117'; प्रिंट करने का प्रयास करते हैं, तो आप देखेंगे कि यह O प्रिंट करता है।

2

जब मैं सिस्टम की थी यह, "ओ" चरित्र के लिए एक ऑक्टल मान (..) मैं इस उत्पादन मिल गया:

char ch = '\117'; 
System.out.println("Char is: " + ch); 

आउटपुट:

Char is : O 
+1

यह उससे भी अधिक है, यह ऑक्टल में ASCII मान है। – EJP

+0

क्षमा करें, उसी अपडेट किया गया :) @EJP –

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