Ones and zeroes are abstractions. They’re actually voltages, magnetic domains, or flashes of light. But you don’t need to know their true nature in order to work with them.
Likewise, hexadecimal is ones and zeroes abstracted into a more human-friendly format. Assembly language abstracts the hex digits of computer instructions into an even more human-friendly format. And high level languages abstract away the nitty-gritty of assembly.
The great thing about abstraction is that you can stack layers upon layers without limit, and the top layers can be used by someone with no knowledge about what goes not at the bottom. Likewise, designers of the bottom layers don’t need to know what’s intended to go on top – a CPU can run any software that’s made to run on it, even if what goes into the software wasn’t even invented when the CPU was made.
Latest Answers