2017-08-17 6 views
5

की मैं एक कोड है जो आउटपुट $i रूपअग्रणी ज़ीरो PHP में कैसे काम कर रहा है?

$i = 016; 
echo $i/2; 
//ans will be 7 

मुझे पता है कि आगे शून्य PHP में किसी ऑक्टल संख्या को इंगित करता है, लेकिन यह कैसे व्याख्या की है, यह कैसे क्रियान्वित किया जा सकता है लगता है? क्या कोई कदम से अपना निष्पादन कदम साझा कर सकता है? यहाँ पार्सर की भूमिका क्या है? मैंने बहुत सारे शोध किए हैं और पिछले सभी उत्तरों को पढ़ा है लेकिन कोई भी गहरी व्याख्या नहीं कर रहा है।

+2

http://php.net पर एक नजर है (जो equilevant दशमलव संख्या है) है /manual/en/language.types.integer.php –

+2

दुभाषिया रूपांतरण दर करता है संकलन चरण में आईएनजी। कोड की पहली पंक्ति एक ही ऑपोड्स को '$ i = 14;' के रूप में बनाती है। – axiac

+0

आपका क्या मतलब है "गहरी स्पष्टीकरण"? पार्सर एक अग्रणी 0 के साथ एक पूर्णांक देखता है और इसे ऑक्टल संख्या के रूप में व्याख्या करता है, यह है !? : डी – xander

उत्तर

2

जब आप PHP में शून्य के साथ पूर्णांक को पूर्ववत करते हैं, उस उदाहरण में, 029

यह ऑक्टल बन जाता है।

तो जब आप इसे गूंजते हैं, तो यह इसके दशमलव रूप में परिवर्तित हो जाएगा।

कौन सा करने के लिए परिणाम:

echo 016; //14 (decimal) valid octal 

echo 029; // 2 (decimal) - Invalid octal 

वास्तव में, अपने यहाँ manual

मान्य अष्टाधारी में कहा गया है:

octal  : 0[0-7]+ 

नोट: पीएचपी 7 करने से पहले, यदि गलत अंकों एक ऑक्टल पूर्णांक (यानी 8 या 9) में दिया गया था, शेष संख्या को नजरअंदाज कर दिया गया था। PHP 7 के बाद से, एक पार्स त्रुटि उत्सर्जित होती है।

+0

हां आपका उत्तर स्पष्टीकरण के लिए बिल्कुल सही लगता है, जिसे मैं संपादित करना पसंद करूंगा, 02 9 से 2 है क्योंकि यह सही दशमलव संख्या नहीं दे रहा है 016 से 14, ताकि कोई भी इसे आसानी से समझ सके। धन्यवाद एक टन :) –

+1

@JayminNoob: 02 9 एक अमान्य ऑक्टल शाब्दिक है, तो यह तब क्या करना चाहिए? –

+0

@ IgnacioVazquez-Abrams मैंने एक ही बात का उल्लेख किया है, ऊपर क्या है यदि यह अमान्य ऑक्टल शाब्दिक है तो यह आगे क्या करता है? –

2

अष्टाधारी अंक प्रणाली या अक्टूबर छोटे के लिए, आधार-8 नंबर प्रणाली है, और का उपयोग करता अंक 0 7. को

ऑक्टल अंकों के लगातार बाइनरी अंकों समूहीकरण बाइनरी अंकों से बनाया जा सकताके समूहों में तीन (दाएं से शुरू)। (00) 1 001 010, इसी अष्टाधारी अंक 1 1 2, अष्टाधारी प्रतिनिधित्व 112

उपज:

उदाहरण के लिए, दशमलव 74 के लिए द्विआधारी प्रतिनिधित्व 1001010. दो शून्यों बाईं पर जोड़ा जा सकता है अपने प्रश्न में $i = 016; दुभाषिया द्वारा गणना और $i = 14; पैदा करता

तो फिर तुम बस 2 से विभाजित है, जो आउटपुट 7.

+0

क्या यह अमान्य ऑक्टल शाब्दिक है जो यह आगे करता है? –

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