|
Please turn wordwrapping on in your plain-text editor. If
you use windows I recommend notepad.exe. Please note that if you already know how to convert between
different bases then you really don't need to read this. But if you
haven't learned this yet, then this will be a definite text for you.
Welcome
Introduction
This is the very first tutorial that I have ever published
and I want you to send every single comment you have and every
single thought you think, while reading this, to my email address
written near the end of this file. I have divided this into two
chapters.
Chapter one explaining what you have to know, before you
can make your own conclusions and methods.
The second is a short one
just to finish off with what you probably wanted to learn by reading
my tutorial. The first chapter is the most important, and you
shouldn't skim past anything you don't quite understand.
I promise that when you have read this file, and thought
about the things in here, you will have an indept knowledge of how
the complex numeral systems work. If you want more than that, I
suggest that you, after reading, make a list of numbers and values
and then convert them to everything you can think of.
Just remember that, practice makes perfect.
-snider
Chapter 1:
Basic Bases
What is a base? A base is what defines all the different
numbering systems. It defines how many different digits, a numbering
system has. To start, the decimal system has 10 different numbers
(0-1-2-3-4-5-6-7-8-9, (count them for yourself)) and is therefore
base 10. Now the big question arises, what to do when you hit 9 and
want to add one more? Well, a lot of heads smarter then ours put
together the simple method of pushing the digits around a bit. 10
was the result, which is actually built from 1 tens and 0 ones. 15
is 1 ten and 5 ones. Because the decimal system is base 10, it also
means that it works on the basis of the power of 10. The third
column in the decimal systems is therefore 100's. I will try to
explain.
BASE 10
(decimal)
column 7 6 5 4 3 2 1
power 1000000 100000 10000 1000 100(hundreds) 10(tens)
1(ones)
This is the chart I will be using in the rest of this
tutorial, and it is important you understand this. From here you can
simply read that the seventh column digit represent how many times
there are 1000000's in a number. The number 65000000 will have 5
times in the 7 column and 6 in column number 8 (NOT 65 times in the
seventh column). Since we write numbers with the most powerful
first, I have chosen to set the columns up in the same way, with the
first column, far left.
But this is all very natural as we were taught math in
school, when we were only seven. Since we have lived with that ever
since, it is hard to imagine how it would be if we didn't have a
numbering system with base 10.
The next step in the understanding of the numbering systems
is to grasp that the number 250 in decimal isn't a number, but
instead a code for a number. Just like another code for that number
is 11111010 and also 372. Lets take the number 15 again. 15 consists
of 1 ten and 5 ones. Now this is in base 10:
***** *****
***** |
| |
one ten |
and five ones.
Lets take the octal system. It is base 8 (0-1-2-3-4-5-6-7).
Now (decimal)15 is:
**** ****
**** ***
| |
one eight |
and seven ones
You see, it's still (decimal)15 asterisks, but now it is
also (and has always been)
17
/ \
one eight \
and seven ones
The chart for base 8 is (as you probably could figure out
for yourself by now)
BASE 8 (octal)
column: 7 6 5 4 3 2 1
power: 262144 32768 4096 512 64 8 1 (values in decimal)
AND
column: 7 6 5 4 3 2 1
power: 1000000 100000 10000 1000 100 10 1 (values in octal)
(This last chart is pretty abstract, so don't feel stupid
if you don't quite understand it.)
Got everything so far? Lets make some more conversions.
Lets take (decimal)435 to base 7.
BASE 7
column: 7 6 5 4 3 2 1
power: 117649 16807 2401 343 49 7 1 (in decimal values)
Now, do we have anything in column 7? Lets try, 435 divided
by 117646 won't do. What about column 6, 435 divided by 16807.. No.
It is obvious that the first digit is in the fourth column. So 435
divided by 343 is 1 and with a remainder of 92. Now we know our
final number in base 7 will be 1---, and that we still have 92 to
convert. So 92 divided by 49(column 3) returns 1 with a remainder of
43. Now we have 11-- and 43 to convert to base 7. 43 divided by 7 is
6 and the remainder of 1. Now we have 116- and the remainder of one.
The rest is very easy to figure out as _n_ divided by 1 always will
return _n_. So our final base 7 number is 1161. And don't think
there are some times when it doesn't work out because of some weird
numbers, it will always work out since nothing but the format of the
value changes.
In short, the value is still (decimal)435. Now it is simply
not displayed using 5 _ones_, 3 _tens_ and 4 _hundreds_, but using 1
_ones_, 6 _sevens_, 1 _forty-nines_ and 1
_three-hundred-and-threes_. Now try to pronounce the number (base
7)1161. One-thousand-one-hundred-sixty-one? No, that would be
pronouncing it in decimal. It should be pronounced
one-one-six-one-seven (the last seven telling that it is base 7).
Ok? Well so far so good. Lets go on with the how and why of
base 5.
BASE 5
column: 7 6 5 4 3 2 1
power: 15625 3125 625 125 25 5 1 (decimal values again
The first column always have to indicate the lowest natural
value possible, that's one. The second column is the base^1, in this
case 5. The third column, base^2, in this case
5^2 = 5 * 5 = 25
Fourth column is then base^3
5^3 = 5 * 5 * 5 = 125
And so on...
So here's your final mathematical formula:
B^(C - 1) = column C's power.
C = column
B = base
That is the end to Chapter 1: Basic Bases.
Chapter 2:
What you really wanted to learn, Hex and Binary
Welcome to the second chapter. Here we will attack the two
number systems Hexadecimal and Binary.
Lets start with the easy one: Binary...
The binary numeral system is the longest way to write any
value. Whatever value you choose to convert to binary, it will
always be more digits than your original number. That is because
binary is base 2. Only two numbers can be displayed, 0 or 1. Yes or
No. True or False. Power or No power. The heart of any computer
system (for now). With the formula in the last chapter we can figure
out how to convert a base 2 system to base 10 numbers.
BASE 2
(binary)
column: 9 8 7 6 5 4 3 2 1
power: 256 128 64 32 16 8 4 2 1
If you can understand my charts by now you can see that the
2 base system is very simple. But also very hard to read for humans.
The number (decimal)23 would be one 16 value, one 4 value, one 2
value and one 1 value.
That's 10111!
As I said, very hard to read for human beings.
This is why Hexadecimal was invented (yes and I do mean
_invented_). Hex is a base 16 system, and therefore it is very
advanced, but still easier to read than binary. And extremely easy
to convert to and from binary because of some simple logical rules.
Lets begin.
The Hex system is as I said base 16 and for that reason,
new numbers had to exist. The 'numbers' became A-F
(0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F). F is the highest number,
representing (decimal)15 alone. The chart for hex would look like
this:
BASE 16
(hexadecimal)
column: 8 7 6 5 4 3 2 1
power: 268435456 16777216 1048576 65536 4096 256 16 1
(The power is still displayed in decimal)
I will leave it to you to get comfortable with converting
from decimal to hex and vice versa. Now, converting from binary to
hex and the other way around is simple. Lets look at them both.
Do you see how hex jumps from one to sixteen in one column
and how binary jumps from one to sixteen in four columns? This is
the breaking point of the story. For every four binary digits they
represent the value of one hex digit. Why? Well, because
(remember the formula?)
2^(5-1) = 16
and
16^(2-1) = 16
16 = 16
(in short: they can represent the same number of values)
So, when you want to convert binary to hex you part the
number in four columns each.
(decimal)155 = (binary)10011011
part it, and calculate a little..
1001 1011
| |
9 B
final...
(decimal)155 = (hex)9B
Note: hex is written either [number]h or 0x[number], so
(hex)9B is either 9Bh or 0x9B.
The trick always works. (Actually it's not a trick but a
logical, mathematical functionality :P)
This is the end of Chapter 2.
All comments, improvements, hashes, asterisks and
keypresses can be sent to blacksuns text-update group, if desired
ofcourse.
Thanks for reading..
Update:
Have you ever been cracking a program and get sick and
tired of doing the math and such to convert hex to ASCII? Well, you
won't need to anymore. This list has all the keys on a keyboard and
there hex values. So now you won't have to convert hex to binary and
then look up what 0110000101100010 (ab) is in ASCII. So here it is:
|
ASCII |
Hex Value |
|
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
`
~
1
!
2
@
3
#
4
$
5
%
6
^
7
&
8
*
9
(
0
)
- (hyphen)
_ (underscore)
=
+
[
{
]
}
\
|
;
:
' (apostrophe)
"
, (comma)
<
.
>
/
?
Enter
Space |
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
60
7E
31
21
32
40
33
23
34
24
35
25
36
5E
37
26
38
2A
39
28
30
29
2D
5F
3D
2B
5B
7B
5D
7D
5C
7C
3B
3A
27
22
2C
3C
2E
3E
2F
3F
0D0A
20 |
Crash Course
in Binary to Hex Conversion
No bullshit. We'll get right down to business. First
example: 1111 . 1 equals true and 0 equals false. So all will be
true. The first number, being true, is 8. The second, being true, is
4. The third, being true, is 2. And the third, being true, is 1.
When you convert binary you always go from right to left, so it will
be like this:
1 1 1 1
8 4 2 1
1 is always the first number, on the right, unless it is
false. So now we add the true numbers. 8+4+2+1=15. 15 in hex is F.
And hex has a base of 16 so it would actually be F 16th. Here is a
chart of the numbers:
0 = 0
1 = 1
and so on until 9
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Now let's do another: 1011 .
1 0 1 1
8 0 2 1
8+2+1=11
B 16th
Now let's use a full binary code. i = 01101001 in binary.
You will have to break it up into 2 - 4 bit parts.
[0110][1001]
[ 0 1 1 0 ][ 1 0 0 1 ]
0 4 2 0 8 0 0 1
6+9=15
F 16th
But there is one thing I figured out from using Hex
Workshop. When you convert, you don't do the last addition. So in
Hex Workshop, "i" would be 69. It puts the two numbers you got out
of the first addition, and makes it one number. So instead of doing
6+9, put 6 and 9 together to get 69.
Credits:
written by snider
Updated by: Prophecy
|