Octal Sistema Numérico
Understanding Base-8
Learn Sobre OctalOctal (base-8) bridges binary e human readability. While hexadecimal tem largely replaced it in modern computing, octal remains important in Unix file permissions e alguns programming contexts. Understanding octal provides insight into number sistema design e computer história.
Como Octal Works
Positional Values
Cada position é a power of 8:
- ...512, 64, 8, 1 (8³, 8², 8¹, 8⁰)
Exemplo: 752 (octal)
- 7 × 64 = 448
- 5 × 8 = 40
- 2 × 1 = 2
- Total = 490 (decimal)
Por que Apenas 0-7?
Quando you reach 8, you carry to o próximo position:
- Decimal 7 = 7 octal
- Decimal 8 = 10 octal
- Decimal 9 = 11 octal
Octal-Decimal Comparison
| Decimal | Octal | Binary |
|---|---|---|
| 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 |
Octal e Binary
O key relationship: cada octal digit é igual a exatamente 3 binary digits.
Octal to Binary
Converter cada digit to 3 bits:
- 0 = 000, 1 = 001, 2 = 010, 3 = 011
- 4 = 100, 5 = 101, 6 = 110, 7 = 111
Exemplo: 752 (octal) to binary
- 7 = 111
- 5 = 101
- 2 = 010
- Result: 111101010
Binary to Octal
Group bits in threes from o right:
- 111101010 → 111 | 101 | 010 → 7 5 2
Octal in Unix File Permissions
O mais comum modern use of octal é Unix/Linux file permissions.
Permission Bits
- r (read): 4
- w (write): 2
- x (execute): 1
Three Categories
- Owner: Primeiro digit
- Group: Segundo digit
- Others: Third digit
Comuns Permissions
| Octal | Meaning | Símbolo |
|---|---|---|
| 755 | Owner: todos, Others: read+execute | rwxr-xr-x |
| 644 | Owner: read+write, Others: read | rw-r--r-- |
| 777 | Everyone: todos permissions | rwxrwxrwx |
| 600 | Owner: read+write apenas | rw------- |
História: Por que Octal?
Early Computing
- Alguns early computers usado 12, 24, ou 36-bit words
- Estes divide evenly by 3
- Octal provided clean representation
- PDP-8 (12-bit) e PDP-10 (36-bit) usado octal extensively
O Shift to Hexadecimal
- 8-bit bytes became padrão (IBM 360)
- 8 bits = 2 hex digits (perfect fit)
- 8 bits = 2.67 octal digits (awkward)
- Hex won for mais purposes
Octal in Programming
Notation
- C/C++/JavaScript: Leading 0 (dangerous!)
- Python 3: 0o prefix (clear)
- Alguns languages: 0o ou @
O Danger of Leading Zeros
In C e JavaScript:
010= 8 (octal!), not 100777= 511 (often for permissions)
Este causes bugs quando people accidentally write 010 expecting decimal 10.
Modern Practice
- Python 3 requires explicit 0o prefix
- Muitos style guides discourage implicit octal
- Octal literals mainly usado for file permissions
Converting Decimal to Octal
Method: Repeated Division by 8
- Divide by 8, record remainder
- Divide quotient by 8, record remainder
- Repeat until quotient é 0
- Read remainders bottom-to-top
Exemplo: 500 (decimal) to octal
| Division | Quotient | Remainder |
|---|---|---|
| 500 ÷ 8 | 62 | 4 |
| 62 ÷ 8 | 7 | 6 |
| 7 ÷ 8 | 0 | 7 |
Result: 764 (octal)
Conclusão
Octal (base-8) foi historically important in computing quando word sizes foram multiples of 3 bits. While hexadecimal tem largely replaced it for general use, octal remains essential for Unix file permissions e occasionally appears in legacy systems. O key insight é esse cada octal digit represents exatamente 3 binary bits, making conversão straightforward. Understanding octal helps quando trabalhando com Unix systems, reading legacy code, ou studying computer história.