How to Convert Hexadecimal to Decimal Numbers in Linux

Brief: This guide explores various ways that you can use to convert hexadecimal to decimal values in Linux bash scripting.

In computing, there are four types of numbers and they are Decimal, Binary, Octal, and Hexadecimal.

  • The decimal system is used for general calculation and represents the base-10 number system.
  • The binary number system is base-2 and the primary language of computer systems. Without it, computers wouldn’t exist. It’s the basis for storing and transmitting digital data and uses two values to perform computations; 0 and 1.
  • The octal notation is a base-8 and is represented by digits 0 to 7.
  • The hexadecimal notation uses 0 to 9 and A to F characters to represent the number.

In bash scripting, you can convert one number system to another and that is precisely what this guide is all about.

Convert Hexadecimal to Decimal Using echo Command

There are several ways of converting hexadecimal numbers to decimal in bash. The simplest way is running the following echo command where hex-number is the hexadecimal digit.

$ echo $((16#hex-number)

For example, to convert the hexadecimal 75 number to decimal, run the following command on the shell prompt.

$ echo $((16#75))

You should get the following output on the terminal.

Convert Hexadecimal to Decimal in Linux
Convert Hexadecimal to Decimal in Linux

Convert Hexadecimal to Decimal Using BC Command

BC (short for basic calculator) is an arbitrary calculator language and compiler that is typically used either as an interactive mathematical shell or a mathematical scripting language.

BC comes installed by default on modern Linux distributions. You can confirm this by running the command:

$ bc

bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

To quit the prompt, type quit and press ENTER.

To convert a hexadecimal value to a decimal using bc, use the following syntax with the ibase value set to 16.

$ echo "ibase=16; hex-number"|bc

For example, to convert the hexadecimal value FF1A, run the following on the shell.

$ echo "ibase=16;FF1A"|bc
Convert Hexadecimal to Decimal Using bc Command
Convert Hexadecimal to Decimal Using bc Command

Convert Hexadecimal to Decimal Using the printf Command

The bash printf command is used to print formatted text to stdout or on the screen. It is the equivalent of the printf() function in Java, C, and C++ to mention a few examples.

To convert a hexadecimal value to a decimal one using the printf command, use the following syntax.

$ printf "%d\n" 0xhex-number

For example, to convert the hexadecimal value AADF to a decimal value using the printf shell function, run the following shell command:

$ printf "%d\n" 0xAADF
Convert Hexadecimal to Decimal Using printf Command
Convert Hexadecimal to Decimal Using printf Command
Conclusion

That was a walkthrough of the different ways you can use to convert hexadecimal to decimal values in a Linux bash shell. Any additional ideas that you might have up your sleeves? Do let us know.

Tutorial Feedback...
Was this article helpful? If you don't find this article helpful or found some outdated info, issue or a typo, do post your valuable feedback or suggestions in the comments to help improve this article...

3 thoughts on “How to Convert Hexadecimal to Decimal Numbers in Linux”

  1. @Pradeep,

    Glad that my article helped you to convert hexadecimal to decimal values…

    You can also achieve the same results using the wcalc command, which is a command-line calculator created to perform all valid mathematical expressions in a Linux shell…

    Reply
  2. Hi,

    Thanks for sharing the tip…

    I managed to convert hexadecimal representation to decimal numbers using the printf command in the bash shell.

    Reply

Got Something to Say? Join the Discussion...

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published or shared. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.