public class Test {
public static void main(String... args) {
int i=010;
System.out.print(i);
}
}
उत्पादन:यह आउटपुट 8 क्यों करता है?
8
क्यों? तर्क क्या है?
public class Test {
public static void main(String... args) {
int i=010;
System.out.print(i);
}
}
उत्पादन:यह आउटपुट 8 क्यों करता है?
8
क्यों? तर्क क्या है?
0
, ऑक्टेल संख्याएं के लिए उपसर्ग है 0x
जैसे हेक्साडेसिमल संख्याओं के लिए उपसर्ग है (और 0b
, द्विआधारी संख्या के लिए उपसर्ग है जावा 7 के बाद से)।
तो 010
का अर्थ 1 * 81 + 0 * 80
है, जो 8
है।
क्योंकि 010
, यहां ऑक्टल है।
पूर्णांक ऑक्टल-सिस्टम में है क्योंकि आपके पास शुरुआत में 0 है।
दशमलव (आधार 10), हेक्साडेसिमल (आधार 16), अष्टाधारी (आधार 8), या बाइनरी (आधार 2) में व्यक्त किया जा सकता Java Language Specification, Chapter 3.10.1 Integer Literals
एक पूर्णांक शाब्दिक पर एक नज़र डालें ।
एक अष्टाधारी अंक अंडरस्कोर से बीच-बीच में एक ASCII अंकों 0 7 के माध्यम से ASCII अंक 0 के एक या अधिक के बाद के होते हैं, और एक, सकारात्मक शून्य, या नकारात्मक पूर्णांक प्रतिनिधित्व कर सकते हैं।
यही कारण है कि 010
= 8
।
0 उपसर्ग का अर्थ है कि आप ऑक्टल संख्याओं का उपयोग कर रहे हैं।
जावा और कई अन्य भाषाओं में, 0
के साथ एक पूर्णांक शाब्दिक शुरुआत को ऑक्टल (बेस 8) मात्रा के रूप में व्याख्या किया जाता है।
यदि आप एक से अधिक महत्वपूर्ण अंकों के साथ संख्याएं लिखते हैं तो आप परिणाम से भ्रमित हो सकते हैं।
// octal to decimal
01 == 1
02 == 2
07 == 7
010 == 8
020 == 16
024 == 20
// octal to binary (excluding most significant bit)
01 == 1
02 == 10
07 == 111
010 == 1000
020 == 10000
024 == 10100
http://en.wikipedia.org/wiki/Octal – arshajii