Also known as the “Base 2” number system, binary is the lowest level of machine language and the language that computers use to receive, perform, and send instructions.
Since binary is “Base 2”, it only uses two digits to represent its numbers: 0 and 1.
Counting in binary works the same way as it does in decimal (Base 10), or any other number system: each spot, or “place” in a binary number starts at 0, then counts up to 1. Since this is Base 2, each place can not go higher than 1, so if we were to count up again, this digit would carry over to the next place, and start again at 0.
For example: 1001 + 1 = 1010
This is just like decimal, where a number starts at 0, then counts up to 9, if we try to count up after that, the number carries over to the Tens place, and restarts at 0:
109 + 1 = 110
NOTE: Just because a binary number uses similar digits to decimal and looks similar to decimal, it does not mean that a binary number can just be read as a decimal number.
To put it another way:
10102 != 101010
Since decimal is “Base 10”, each place in a number is a power of ten, 100, 101, and so on. We know these as the “Ones” place, the “Tens” place, the “Hundreds” place, etc.
The same is true for binary, but since it is Base 2, each place is a power of 2: 20, 21, 22, and so on.
Binary is important because it is the number system and language that computers use to communicate. Any set of instructions sent to a computer will consist of only 1's and 0's.
Although binary is what computers use to communicate, it is much more difficult for humans to use binary to try and perform calculations or write code.
As stated above, each place in a binary number can only be a 1 or 0, which means each place is a power of 2. So a decimal number like 257 would be 100000001 in binary, as we can see, numbers can get very big, very fast.
With a number system where even simple numbers and code can become a massive amount of 1's and 0's, it is very difficult to perform calculations on these numbers without making a mistake. So, programmers have used higher base numbering systems to shorten these numbers down immensely. These numbering systems are also powers of 2, in order to cleanly split binary numbers into smaller segments, such as octal (Base 8), or hexadecimal (Base 16).
They are arithmetic types and are further classified into: (a) integer types and (b) floating-point types.
They are again arithmetic types and they are used to define variables that can only assign certain discrete integer values throughout the program.
The type specifier “void” indicates that no value is available.
They include (a) Pointer types, (b) Array types, © Structure types, (d) Union types and (e) Function types.