There are many number systems in the world, they can all be classified by this format: base-<Number>. How do you find out that number? Well, count how many numbers/characters you have to go up to increase by a character. The universal number system is base-ten, you have to go 10* numbers up from 0 to get to 10 (0-9).
Binary
Binary is base-two. Binary only contains 2 numbers because of it's base number, 1 and 0. This makes binary numbers rather large and confusing. The best way to explain this is to show how to count in binary.
You start off with 0 and add one, this increases the 0 to 1 (Just like in base-ten). Now if you add another one you go to 10 because you have reached the base number. Then just continue that pattern on up.
Help Table
- 1
- 10
- 11
- 100
- 101
- 110
- 111
- 1000
- 1001
- 1010
- 1011
- 1100
- 1101
- 1111
A good trick for this is take the base number, subtract one. Now when you reach that number set the current number to 0 and carry a 1 to the left.
When working with binary it is very useful to be able to convert back and forth quickly. To do that start with the left most 1, and move to the right performing an action for each number. For a 1: double the number in your mind and add one. For a 0: just double your number. If you do this you should be able to convert any size binary number fairly quickly. The size of the number you can convert of course depends on your memory and multiplication skills.
Now to convert a base-ten number to binary. This is a little more complicated and requires memorization of some (easy) numbers. You will have to remember the powers of two, which you should already know from minecraft. They are 1, 2, 4, 8, 32, 64, 128, 256, 512, 1024, 2048, etc. Now to the method! Find the largest power of two that will fit in your number, write it down and subtract it from you number. Now take the new number and check the next smallest power of two, write 0 to the right of your sequence if it is too big, or 1 if it fits. If you write one then also subtract that power from your number. Repeat this process until you get to the 1 place.
0b100 represents 4. I'm not aware of any system under which you'd try to represent 4 as 0b001. That doesn't mean there isn't one, but it does mean that every time you see 0b100, you can assume it means 4. Likewise, you would assume 48 means forty-eight, unless someone went out of their way to state otherwise - higher digits are always to the left by default.
Little/big-endian representation has to do with the order of bytes, not bits. Let's say you've got the number 1000, and you want to represent it in binary - you'd use 0b1111101000.
However, 0b1111101000 is more than eight bits, and you can only assign eight bits to the byte. So you need multiple bytes to hold it - one will get 0b00000011, and the other will get 0b11101000. In memory, which byte comes first? Under a little-endian system, it's the byte representing the "smallest" part of the number (0b11101000), under a big-endian system it's the byte representing the "largest" part of the number (0b00000011). However, the order of the bits within those bytes remains the same either way.
Hexadecimal
Coming Soon….
*Actually 9 starting off from 0, but you get my point.
Please post some constructive criticism, I am a horrible writer but wanted to help out the beginners.