अष्टाधारी से दशमलव: मोड, मास्क या पुराना डंप खोलना
यह रूपांतरण क्या करता है
यह आधार 8 का मान पढ़कर दशमलव में लिख देता है। यह दिशा तब चाहिए जब मोड पहले से अष्टाधारी में लिखा हो — जैसा chmod और ls चाहते हैं — और वह संख्या किसी स्क्रिप्ट, कॉन्फ़िग फ़ील्ड या तुलना में डालनी हो जहाँ आसपास का कोड दशमलव ही मानता है।
हर स्थान आठ की घात है
दाईं ओर से भार 1, 8, 64, 512 और इसी तरह बढ़ते हैं। 755 बदलने पर 7 × 64 + 5 × 8 + 5 = 493 मिलता है। ध्यान दें कि दशमलव बनते ही अंक तीन स्वतंत्र अनुमतियाँ नहीं रह जातीं — वही पैक किया ढाँचा जो अष्टाधारी रूप को पढ़ने लायक बनाता था, दशमलव में बदलते ही घुल जाता है, इसलिए नतीजा इस्तेमाल करने से पहले यह याद रखें।
अष्टाधारी से दशमलव तालिका
अष्टाधारी मोड और मास्क, उनके दशमलव मानों के साथ। अनुमति मोड को दशमलव में बदलना स्क्रिप्टिंग के लिए काम का है; पढ़ने के लिए उसे अष्टाधारी में ही रखना बेहतर है, इसलिए ज़्यादातर टीमें दोनों दर्ज करती हैं।
| अष्टाधारी | दशमलव |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 7 | 7 |
| 10 | 8 |
| 17 | 15 |
| 100 | 64 |
| 377 | 255 |
| 644 | 420 |
| 755 | 493 |
| 1000 | 512 |
अष्टाधारी का इस्तेमाल अनुमतियों तक क्यों सिमट गया
कोई भी आधार तभी जगह बनाता है जब वह मशीन के समूहों से मेल खाए। अष्टाधारी शुरुआती हार्डवेयर के छह और बारह बिट के शब्दों पर फिट बैठती थी, और जैसे ही आठ बिट का बाइट सार्वभौमिक हुआ, स्वाभाविक समूह चार बिट का हो गया, यानी षोडशआधारी। अनुमतियाँ बचीं क्योंकि वे सचमुच नौ बिट चौड़ी हैं और तीन के तीन बराबर समूहों में बँटती हैं — ऐसा मामला जहाँ आधार का गणित आज भी डेटा के ढाँचे से मेल खाता है।
अनुमति का हिसाब दशमलव में न करें
पढ़ने की अनुमति देने के लिए दशमलव 493 और 64 जोड़ना तर्कसंगत लगता है और है नहीं: यहाँ 64 असल में चौंसठ है, और अष्टाधारी मोड में वह जो बिट सेट करता है वह पढ़ने वाला बिट नहीं है। अनुमति का गणित अष्टाधारी में ही करें, 400 और 40 जैसे मानों के साथ, और बदलें सिर्फ़ भंडारण या दिखाने के लिए।
अक्सर पूछे जाने वाले सवाल
अष्टाधारी को दशमलव में हाथ से कैसे बदलें?
हर अंक को उसके स्थानीय भार — दाईं ओर से 1, 8, 64, 512 और आगे — से गुणा करें और नतीजे जोड़ दें। 755 पर यह 7 × 64 + 5 × 8 + 5 बनता है, यानी 448 + 40 + 5, या 493।
मेरी स्क्रिप्ट में chmod 755, 493 क्यों दिखाता है?
क्योंकि स्क्रिप्ट मोड को साधारण दशमलव पूर्णांक की तरह पढ़ रही है। फ़ाइल सिस्टम दोनों हालत में वही बिट रखता है; सिर्फ़ लिखने का तरीका बदलता है। अष्टाधारी रूप अपने दिमाग़ और टिप्पणियों में रखें, और जहाँ मान दशमलव मानने वाले कोड से मिले, वहीं बदलें।
यहाँ सबसे बड़ा अष्टाधारी मान कौन-सा बदल सकता हूँ?
किसी भी व्यावहारिक मोड या मास्क से कहीं बड़ा। रूपांतरण पूर्णांक गणित में चलता है, इसलिए लंबा इनपुट भी हर अंक के साथ सही लौटता है, न कि वह गोल नतीजा जो फ़्लोटिंग-पॉइंट कैलकुलेटर दे देता है।
क्या अष्टाधारी में आगे का शून्य मायने रखता है?
संख्यात्मक रूप से नहीं — 0755 और 755 एक ही मान हैं — पर यह काम का संकेत है कि संख्या अष्टाधारी है, और कई भाषाएँ अष्टाधारी लिटरल के लिए उसे ज़रूरी मानती हैं। कनवर्टर इनपुट पर आगे का शून्य और 0o उपसर्ग ले लेता है, और नतीजे पर कभी नहीं लगाता।
क्या टूल अष्टाधारी में अपूर्णांक लेता है?
हाँ, और जब कोई अपूर्णांक लिखा न जा सके तो वह साफ़ बता देता है। कुछ अष्टाधारी अपूर्णांक पूरे होते हैं और कुछ नहीं, यह इस पर निर्भर करता है कि हर दो की घात है या नहीं। विस्तार पूरा न होने पर नतीजा काटा जाता है और साफ़ चिह्नित होता है, बिना बताए गोल नहीं किया जाता।