I can just about do denary to binary but hex conversions lose me.
Accepted answer
**Denary → binary:** write the place values `128 64 32 16 8 4 2 1`, then work left to right taking each one if it fits. For 77: 64 fits (13 left), 8 fits (5 left), 4 fits (1 left), 1 fits → `01001101`.
**Binary → denary:** add the place values where there's a 1.
**Binary ↔ hex is the easy one** — split into groups of **4 bits** (a nibble), because one hex digit is exactly 4 bits. `01001101` → `0100` and `1101` → `4` and `D` → `4D`. Going back, expand each hex digit into 4 bits.
Remember `A = 10` through `F = 15`.
**Denary → hex:** go via binary rather than dividing repeatedly — it's faster and fewer marks get lost.
Hex exists because a byte is exactly two hex digits, so it's a compact, readable way to write binary (MAC addresses, colour codes, memory addresses).