CodeRigor

FREE COURSE / REAL PRACTICE

Binary, hex & signed numbers

Make bits and bytes concrete: binary place values, hexadecimal, byte order, one’s complement and two’s complement.

Free lessons & exercises4 authored lessons2 units

What you’ll work toward

Convert and interpret representations, distinguish carry from overflow and reason about signed boundaries.

Read an explanation, inspect the diagrams and work through the available checks, debugging exercises and builds. Feedback and prerequisite links guide the next step.

Before you start

This course builds on these skills:

Individual lessons can add prerequisites. The course map shows your actual readiness.

A look inside the first lesson

Binary: bits, place values & unsigned words

C++
#include <print>
int main() {
    constexpr auto bits = 0b0010'1101;
    std::println("{} {} {}", bits, bits == 45, 010);
}

Your course outline

Follow the lessons in curriculum order. Open a unit to preview the ideas you’ll work with.

UNIT 012 lessons Binary & hex
  1. LESSON 01.01

    Binary: bits, place values & unsigned words

    Convert binary and decimal, distinguish a value from its spelling, and validate fixed-width unsigned words without overflowing or shifting by the type width.

    Open lesson
  2. LESSON 01.02

    Hexadecimal: nibbles, bytes & byte order

    Read and write hex bytes, convert four-bit groups, and decode explicit little- and big-endian values without confusing display order with memory order.

    Open lesson
UNIT 022 lessons Signed encodings
  1. LESSON 02.01

    One's complement: negative zero & end-around carry

    Model one's-complement signed words explicitly: encode negatives by inverting within the width, preserve both zeros, and add with end-around carry.

    Open lesson
  2. LESSON 02.02

    Two's complement: signed values, extension & overflow

    Encode and decode two's-complement words, sign-extend them, and distinguish unsigned carry from signed overflow without executing C++ signed overflow.

    Open lesson