Computer's signal is only 0 and 1 binary system?
How does computer recognize and make sense of all 0 and 1?
Let's use the 8-bit computer example. For this example I'll use the 6502 processor.
All operation instructions are stored in memory, with each memory "address" holding 8 bits (1010 1001, for example)
The processor has has 8 connections for sending or receiving these 8 bits all at once ( this is called the data bus)
It also has 16 lines called the "address bus" which it uses to indicate which memory address it wants to access. ( By outputting either a 1 or 0 on separate lines. These 16 lines then, taken together, are decoded by the hardware to access a particular memory location.)
Each address can contain either data or an instruction (called an Op-code)
So for example, 1010 1001 could represent the number 169 decimal, or the ascii code for ")" character( with even parity*), or the op code telling the mico-processor to take the data in the following address location and load it into its accumulator ( a register in the processor).
How the processor treats what is at each address depends on what it "expects" to find there.
When it first turned on, The 6502 first looks at a two specific addresses. The data it finds there gives it the address of the first instruction of the program it will first start running.**
So if these two addresses contain 0000 0001 and 0000 1000, the computer will access address 0000 0001 0000 0001 ( 0011 in hex), and treat the data there as an Op-code.
If that address held 1010 1001, the computer takes this to mean "take the data in the next address location (0012 hex) and load it into the accumulator".
We will assume that the next address held the value of 0010 0000, so it will store 0010 0000 in its accumulator.
It then looks at address 0013 hex, for the next op-code.
Let's say that the next three address locations contain
1000 1101
1100 0000
0000 0000
1000 1101 is the op-code for " take the contents presently in the accumulator and store it in the address location indicated by the data in the next two address locations". ( in this case the "lower half" of the address is first, followed by the "upper half", so this means that the computer will take the accumulator contents (0010 0000) and store it at memory address 0000 0000 1100 0000 (00C0 hex).
The computer then goes on to execute the instruction it finds at address 0016 hex ( 0000 0000 0001 0110 binary).
The processor continues doing this until it hits an op-code of 0000 0000, which is the "break" command.
* parity is a means of data checking. It only takes 7 bits to encode all the characters, so the extra bit is used to double check for possible data corruption. For even parity, the leading digit is made either a 1 or 0 in order to make the total number of "1"s an even number. If the computer then checks and finds and odd number of "1"s it will halt and indicate an possible data error.
** These first instructions will normally be stored in permanent memory, and will be the "boot" or start up routines for the computer.