ऑक्टल संख्या प्रणाली
बेस-8 को समझना
ऑक्टल सीखेंऑक्टल (बेस-8) बाइनरी और मानव पठनीयता के बीच एक सेतु है। जबकि हेक्साडेसिमल ने आधुनिक कंप्यूटिंग में इसकी जगह काफी हद तक ले ली है, ऑक्टल Unix फ़ाइल अनुमतियों और कुछ प्रोग्रामिंग संदर्भों में अभी भी महत्वपूर्ण है। ऑक्टल को समझने से संख्या प्रणाली डिज़ाइन और कंप्यूटर इतिहास की अंतर्दृष्टि मिलती है।
ऑक्टल कैसे काम करता है
स्थानीय मान
प्रत्येक स्थान 8 की घात है:
- ...512, 64, 8, 1 (8³, 8², 8¹, 8⁰)
उदाहरण: 752 (ऑक्टल)
- 7 × 64 = 448
- 5 × 8 = 40
- 2 × 1 = 2
- कुल = 490 (दशमलव)
केवल 0-7 क्यों?
जब आप 8 पर पहुँचते हैं, तो अगले स्थान पर कैरी होता है:
- दशमलव 7 = 7 ऑक्टल
- दशमलव 8 = 10 ऑक्टल
- दशमलव 9 = 11 ऑक्टल
ऑक्टल-दशमलव तुलना
| दशमलव | ऑक्टल | बाइनरी |
|---|---|---|
| 0 | 0 | 000 |
| 5 | 5 | 101 |
| 7 | 7 | 111 |
| 8 | 10 | 1000 |
| 10 | 12 | 1010 |
| 16 | 20 | 10000 |
| 64 | 100 | 1000000 |
| 100 | 144 | 1100100 |
| 255 | 377 | 11111111 |
| 512 | 1000 | 1000000000 |
ऑक्टल और बाइनरी
मुख्य संबंध: प्रत्येक ऑक्टल अंक ठीक 3 बाइनरी अंकों के बराबर होता है।
ऑक्टल से बाइनरी
प्रत्येक अंक को 3 बिट में बदलें:
- 0 = 000, 1 = 001, 2 = 010, 3 = 011
- 4 = 100, 5 = 101, 6 = 110, 7 = 111
उदाहरण: 752 (ऑक्टल) को बाइनरी में
- 7 = 111
- 5 = 101
- 2 = 010
- परिणाम: 111101010
बाइनरी से ऑक्टल
दाईं ओर से बिट को तीन-तीन के समूह में बाँटें:
- 111101010 → 111 | 101 | 010 → 7 5 2
Unix फ़ाइल अनुमतियों में ऑक्टल
ऑक्टल का सबसे आम आधुनिक उपयोग Unix/Linux फ़ाइल अनुमतियाँ हैं।
अनुमति बिट
- r (read): 4
- w (write): 2
- x (execute): 1
तीन श्रेणियाँ
- मालिक: पहला अंक
- समूह: दूसरा अंक
- अन्य: तीसरा अंक
सामान्य अनुमतियाँ
| ऑक्टल | अर्थ | चिह्न |
|---|---|---|
| 755 | मालिक: सभी, अन्य: read+execute | rwxr-xr-x |
| 644 | मालिक: read+write, अन्य: read | rw-r--r-- |
| 777 | सभी: सभी अनुमतियाँ | rwxrwxrwx |
| 600 | मालिक: केवल read+write | rw------- |
इतिहास: ऑक्टल क्यों?
प्रारंभिक कंप्यूटिंग
- कुछ शुरुआती कंप्यूटर 12, 24, या 36-बिट वर्ड का उपयोग करते थे
- ये 3 से समान रूप से विभाजित होते हैं
- ऑक्टल ने स्वच्छ प्रतिनिधित्व प्रदान किया
- PDP-8 (12-बिट) और PDP-10 (36-बिट) ने ऑक्टल का व्यापक उपयोग किया
हेक्साडेसिमल की ओर परिवर्तन
- 8-बिट बाइट मानक बन गए (IBM 360)
- 8 बिट = 2 हेक्स अंक (बिल्कुल सही)
- 8 बिट = 2.67 ऑक्टल अंक (अजीब)
- अधिकांश उद्देश्यों के लिए हेक्स जीत गया
प्रोग्रामिंग में ऑक्टल
नोटेशन
- C/C++/JavaScript: अग्रणी 0 (खतरनाक!)
- Python 3: 0o उपसर्ग (स्पष्ट)
- कुछ भाषाएं: 0o या @
अग्रणी शून्य का खतरा
C और JavaScript में:
010= 8 (ऑक्टल!), 10 नहीं0777= 511 (अक्सर अनुमतियों के लिए)
यह बग पैदा करता है जब लोग गलती से 010 लिखते हैं और दशमलव 10 की उम्मीद करते हैं।
आधुनिक प्रथा
- Python 3 में स्पष्ट 0o उपसर्ग आवश्यक है
- कई शैली गाइड निहित ऑक्टल को हतोत्साहित करती हैं
- ऑक्टल लिटरल मुख्य रूप से फ़ाइल अनुमतियों के लिए उपयोग होते हैं
दशमलव को ऑक्टल में बदलना
विधि: 8 से बार-बार भाग
- 8 से भाग दें, शेषफल रिकॉर्ड करें
- भागफल को 8 से भाग दें, शेषफल रिकॉर्ड करें
- भागफल 0 होने तक दोहराएं
- शेषफल नीचे से ऊपर पढ़ें
उदाहरण: 500 (दशमलव) को ऑक्टल में
| भाग | भागफल | शेषफल |
|---|---|---|
| 500 ÷ 8 | 62 | 4 |
| 62 ÷ 8 | 7 | 6 |
| 7 ÷ 8 | 0 | 7 |
परिणाम: 764 (ऑक्टल)
निष्कर्ष
ऑक्टल (बेस-8) ऐतिहासिक रूप से कंप्यूटिंग में महत्वपूर्ण था जब वर्ड साइज़ 3 बिट के गुणज थे। जबकि हेक्साडेसिमल ने सामान्य उपयोग के लिए इसकी जगह काफी हद तक ले ली है, ऑक्टल Unix फ़ाइल अनुमतियों के लिए आवश्यक बना हुआ है और कभी-कभी पुरानी प्रणालियों में दिखाई देता है। मुख्य अंतर्दृष्टि यह है कि प्रत्येक ऑक्टल अंक ठीक 3 बाइनरी बिट का प्रतिनिधित्व करता है, जिससे रूपांतरण सीधा हो जाता है। ऑक्टल को समझने से Unix सिस्टम, पुराने कोड, या कंप्यूटर इतिहास के साथ काम करने में मदद मिलती है।