Altifigence Academy

1 / 36 · Concept

Binary and hexadecimal

Represent the same value in binary and hexadecimal.

Learning goals

  • Calculate a binary value from its place weights.
  • Map groups of four bits to hexadecimal digits.

Each bit position has a weight.

The unsigned value of b[3:0] is 8×b[3] + 4×b[2] + 2×b[1] + b[0]. Thus 1010 is 10 and 0010 is 2. Leading zeros preserve the value but affect the declared width.

An N-bit unsigned value ranges from 0 to 2^N−1. The value 16 needs five bits. A four-bit destination can discard the high bit, so choose the required range first.

Hexadecimal is a compact notation for bits.

Group bits in fours from the right. 1010 is A and 1111 is F, so 1010_1111 is AF in hexadecimal. The notation changes; the stored bits do not.

In SystemVerilog, 8'hAF and 8'b1010_1111 have the same value and width. The number before the apostrophe specifies the bit width, not the base.

BinaryHexDecimal
000000
011177
100088
1111F15

Try it yourself

Convert 0011_1100 to hexadecimal and decimal.

Read the explanation

0011 is 3 and 1100 is C, giving 0x3C. The weighted sum is 32+16+8+4=60.

Your choice applies to this browser. Change it any time using the footer.