The octal numeral system is a base 8 numeral system. It uses the numerals 0 through 7. The octal numeral system is a base 16 numeral system. The standard numeral system is called base 10 (decimal) and uses ten symbols: 0,1,2,3,4,5,6,7,8,9. Hexadecimal uses the decimal numbers and includes six extra symbols. There are no symbols that mean ten, or eleven etc. so these symbols are letters taken from the English alphabet: A, B, C, D, E and F. Hexadecimal A = decimal 10, and hexadecimal F = decimal 15.
Syntax
You need to use the following bc syntax to covert number:
# Convert octal to hexa ## echo "obase=16; ibase=8; octal-number-here" | bc ## convert base 8 (octal) number 17 to hexadecimal ## echo "obase=16; ibase=8; 17" | bc
Sample outputs:
F
Where,
- obase = Set output base (like 2, 8, 10, 16)
- ibase = Set input base (like 2, 8, 10, 16)
- 17 = Convert this number to ibase. The input must be given as per obase.
To convert hexadecimal to octal use the following syntax:
# Convert hexa to octal ## echo "obase=8; ibase=16; hex-number-here" | bc ## convert base 16 (hex) number 10 to octal ## echo "obase=8; ibase=16; 100" | bc
Sample outputs:
400
The following will convert whole file of octal to hex, one per line:
( echo "obase=16; ibase=8" ; cat octal-data-file.txt ) | bc
printf command example
You can also use the printf command as follows:
## Convert hex # 0x100 to octal base ## printf "%o\n" 0x100
Sample outputs:
400
Or
## Convert octal # 4242 to hex base ## printf "%x\n" 04242
Sample output:
8a2
Please note that a hex base number must prefix with 0x and an octal base number must prefix with 0.
🐧 Please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 2 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Is it possible to do it the other way around ? Hexa to Octa ?
Yes to convert HEXA # 1388 to Octa, run:
echo "obase=8; ibase=16; 1388" | bc
Where,
a) ibase == input base set to hexa (16)
b) obase == output base set to Octa (8)
c) 1388 == it is an input number in hexa.
HTH