Linux / UNIX: bc Convert Octal To Hexadecimal or Vise Versa

How do I convert from octal to hex number using the bc UNIX / Linux command line utility?

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 "%on" 0x100 ```

Sample outputs:

`400`

Or

``` ## Convert octal # 4242 to hex base ## printf "%xn" 04242 ```

Sample output:

`8a2`

Please note that a hex base number must prefix with 0x and an octal base number must prefix with 0.

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Composer 101

How to use Composer Composer 101 Installing Composer on cPanel servers Working with Composer & Examples Composer is…

LINE’s Crypto Exchange Could Win Japan License This Month, Report Says

Japanese messaging giant LINE may soon be able to open a cryptocurrency exchange for users based in the…

US Audit Watchdog: DLT Could Disrupt Financial Reporting

Technologies like blockchain are changing the face of auditing, according to a senior official of an oversight board…