Course Content
Introduction to Blockchain
Introduction to Blockchain
Binary, Decimal, and Hexadecimal Numeral Systems
In the realm of blockchain and computing, understanding numeral systems is fundamental, mainly binary, decimal, and hexadecimal.
Decimal System
The decimal system, or base-10 system, is our everyday system of counting and uses ten digits, 0
through 9
. While not used directly in the mechanics of the blockchain, it is the system we use to interpret values.
Binary System
The binary system, or base-2 system, is the core language of computers, representing values using two digits: 0
and 1
. Each digit in binary is called a bit, the basic unit of information. Number 4
in binary, for instance, is 100
.
However, in computer memory, the number of bits required for an integer has to be chosen in advance. Suppose we want 8 bits (1 byte) for an integer meaning that the integer must always take up eight digits regardless whether it uses all of them. Number 4
will be represented as follows: 00000100
.
Let's take a look at the decimal numbers from 0 to 4 represented as 8-bit (1-byte) integers in binary:
Hexadecimal System
Hexadecimal system, or base-16 system, extends the decimal system to sixteen symbols: 0
to 9
followed by a
to f
(a = 10, b = 11, ..., f = 15). Moreover, hexadecimal numbers are often prefixed with the 0x
characters. In computing, hexadecimal provides a more human-friendly representation of binary-coded values.
It's compact and easier to understand at a glance than binary, especially for large numbers. Bitcoin's block headers, for example, are stored in hexadecimal, however, processed in binary.
Let's extend the table above with hexadecimal representations of 1-byte integers from 0 to 15:
Similarly to hexadecimal numbers, binary numbers are also sometimes prefixed with the 0b
characters.
Binary/Decimal Conversion
To convert binary to decimal, multiply each bit by 2
raised to the power of its position from right to left, starting with 0
, and sum the results. Here is an example:
Binary: 1101
Decimal: 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 8 + 4 + 0 + 1 = 13
To convert decimal to binary, divide the number by 2 and write down the remainder. Continue dividing the quotient by 2 until you get a quotient of zero. The binary number is the remainders read in reverse order.
Let's take a look at an example:
Decimal: 13
Binary: 1101 (13 divided by 2 is 6 remainder 1, 6 divided by 2 is 3 remainder 0, 3 divided by 2 is 1 remainder 1, and 1 divided by 2 is 0 remainder 1)
Hexadecimal/Decimal Conversion
To convert hexadecimal to decimal, convert each hexadecimal digit to a decimal number and then, similarly to binary, multiply each converted digit by 16
raised to the power of its position from right to left, starting with 0
, and sum the results.
Hexadecimal: 1A3
Decimal: 1*16^2 + 10*16^1 + 3*16^0 = 256 + 160 + 3 = 419
To convert decimal to hexadecimal, divide the number by 16 and write down the remainder. Continue dividing the quotient by 16 until you get a quotient of zero. The hexadecimal number is the remainders read in reverse order.
Decimal: 419
Hexadecimal: 1A3 (419 divided by 16 is 26 remainder 3, and 26 divided by 16 is 1 remainder 10, which is 'A' in hex)
Binary/Hexadecimal Conversion
In order to convert binary to hexadecimal or vice versa, you can first convert to decimal, then convert from decimal to the respective numeral system.
Thanks for your feedback!