Firstly, binary.
In all modern countries, the dominant counting system is known as the decimal system (or base 10), which means that when counting, there are 10 designated symbols used before another column must be added to further counting ability.
Essentially there are the units: 0-9, of which the highest number is 9. When you try to add the lowest non-zero unit (aka 1) to the highest unit (9), you run out of symbols, thus another column must be added in order to continue counting, hence 10 is born.
This "adding 1" process can continue until the units yet again reach their maximum (19), after which another mark must be made to the second column, resulting in 20. This of course can continue until you run out of symbols to represent that column (99) which means yet another column must be added (resulting in 100).
Technically speaking, the number 1 is really more like 01 or 001 (or to a greater extent 00000000001), meaning in reality, 0 is actually shorthand for an infinitely long line of 0s that nobody can be bothered to write. The main reason they aren't written (aside from the fact nobody has that kind of time) is because writing them would be redundant. Our brains all know there is nothing before that 1. When someone sees a 1, they don't think there's an infinite amount of nothing before that 1, because really it's the 1 that matters most.
"So, what has this got to do with binary?".
Spoiler
My answer is: "everything".Quite simply, binary is an alternate counting system.
Whereas decimal is base 10 (ie it has 10 symbols to choose from) binary is in fact base 2, giving only two symbols: 1 and 0.
Aside from this one major difference, it is pretty much exactly the same as counting in base 10. A fact I shall now prove:
0 + 1 in base 10 is 1,
0 + 1 in base 2 is 1.
1 + 1 in base 10 is 2,
1 + 1 in base 2 … oh dear, we've run out of symbols, time to add another column:
1 + 1 in base 2 is 10 (exactly the same value, just written differently),
2 + 1 in base 10 is 3,
10 + 1 in base 2 is 11 (yet again, exactly the same value, but using less symbols and more columns)
So, that's binary in a nutshell. Not exactly easy to use, but all the same principles as base 10.
In fact, here's another good principle to compare, this again applies to all bases. For this, we will be using exponentiation (aka powers of), denoted by this symbol: ^
eg 4^2 = 16 (4 to the power of 2, ie 4*4, is 16)
Exponentiation can be used to find out the possible limits of a set of columns depending on the base being used.
For example, if I am using base 10 (decimal) and I want to know what my number limit is if I have 4 columns, I can do 10 ^ 4 (10*10*10*10).
The result of course, is 10000.
Spoiler
This is correct, 4 digits would give you only 9999 as your maximum number. That is if you are only counting non-zero numbers. If you include zero, technically you have 10000 numbers from which to choose since we are counting 0000 as a possible value.In decimal, as 0 is designated as 'nothing' or 'worthless', the 10000 result would be 0 if there were no possibilities. However since there are 9999 non zero numbers, and 1 zero, the result is in fact 10000.
This same rule applies to base 2 (binary).
If I have 4 columns in which to make a base 2 number, that's the same as 2 ^ 4 (2*2*2*2), which is 16.
If you count, including 0, there are 16 possible combinations of 1s and 0s you can get from 4 columns:
0000,0001,0010,0011,
0100,0101,0110,0111,
1000,1001,1010,1011,
1100,1101,1110,1111
There we go, just proved it. By using exponentiation, you can figure out the number of results without having to write all possible results down.
Spoiler
Throughout its entire system, a computer stores data as bytes. Bytes themselves are made up of smaller units called bits.A bit itself is a tangible thing capable of having two states: set or clear. Generally (at least in your computer's hard disk) bits are stored by defining the polarity of a piece of metal, being positive for set and negative for clear. The byte itself (on modern computers) is comprised of 8 bits.
Spoiler
Ok, so a bit has two states: set and clear. Those are a bit much to say and write, right? So lets make it a bit easier. Set is 1 and clear is 0. So now a bit has two states: 1 and 0. Let's try to represent a byte (8 bits)01101001
Oh look, binary.
Yep - by treating set as 1 and clear as 0, you can represent a byte as a binary number.
This of course means we have a way of storing numbers on a computer. I wonder how high 1 byte goes?
2 ^ 8 = 256
Oh, that high? How about 2 Bytes?
2 ^ 16 = 65536
That's a lot of numbers!
All sarcasm aside, I hope that last little section made the first walls of text worthwhile.
Knowing the basics of bytes and binary are very useful things to have if you're going to go more in depth with programming.
Not only does it mean when people say 'binary is just 1s and 0s' you can get annoyed with them because you appreciate the complexity of it, but it also opens up a pathway to wider applications of this knowledge:
Cryptography,
data compression,
boolean logic,
the CC colour system,
compiling code scripts,
bit shifting and bit-level operations.
Of course, not all of these are quite as easy, but if nothing else it opens a world of possibilities for you to broaden your horizons.
Any criticism or corrections are accepted, please be kind, I wrote this at 4am and frankly I wanted it finished so the knowledge was on the tutorials.
I hope to follow this up with tutorials on bit-shifting and binary operations as well as how bytes are used to store text data, a bit of boolean logic, a bit of the CC colour system, the uses of base 8 and base 16 in terms of programming, easy conversion between base 2, base 10 and base 16 and possibly a bit of floating point arithmetic or some uses of the binary read/write filemodes.
Thanks for reading.
PS - I think I should probably go to bed soon, I have college tomorrow.