Difference between revisions of "User:Saul/cs and math"

From Organic Design wiki
(Bases)
(Hexadecimal)
Line 140: Line 140:
 
001 010 101 000 111
 
001 010 101 000 111
 
</source>
 
</source>
Convert these sets of threes into Decimal or Octal (Same thing since octal (8) does not exceed decimal (10)):
+
Convert these sets of threes into Decimal or Octal (Same thing since a single octal (8) digit does not exceed decimal (10)):
 
<source>
 
<source>
 
1 2 5 0 7
 
1 2 5 0 7
Line 147: Line 147:
 
<source>
 
<source>
 
12507
 
12507
 +
</source>
 +
 +
=== Hexadecimal ===
 +
Hexadecimal is base and is favoured in computing due to it being a larger base than Octal or Decimal and it has the property of having 2 as one of its roots, eg. '''2<sup>4</sup> = 16'''<br>
 +
Hexadecimal digits represent the decimal numbers from 0-15 where digits above 9 are represented by letters.<br>
 +
Here is few conversions from Hexadecimal to Decimal:
 +
<source>
 +
Hexadecimal : Decimal
 +
0 : 0
 +
1 : 1
 +
2 : 2
 +
3 : 3
 +
4 : 4
 +
5 : 5
 +
6 : 6
 +
7 : 7
 +
8 : 8
 +
9 : 9
 +
A : 10
 +
B : 11
 +
C : 12
 +
D : 13
 +
E : 14
 +
F : 15
 +
</source>
 +
 +
==== Binary to Hexadecimal ====
 +
Number to convert:
 +
<source>
 +
01110101000111
 +
</source>
 +
Since hexadecimal is 2<sup>'''4'''</sup> we can separate the binary digits in sets of fours from the right to the left.
 +
<source>
 +
01 1101 0100 0111
 +
</source>
 +
Add leading zeros if necessary:
 +
<source>
 +
0001 1101 0100 0111
 +
</source>
 +
Convert the groups into decimal (from binary):
 +
<source>
 +
1 13 4 7
 +
</source>
 +
Convert the sections into hexadeimal (from decimal):
 +
<source>
 +
1 D 4 7
 +
</source>
 +
Concatenate the results together and you have your Hexadecimal representation:
 +
<source>
 +
1D47
 
</source>
 
</source>

Revision as of 03:02, 3 August 2019

Bases

Binary

Unsigned

Unsigned binary can represent numbers from 0 to 2bits - 1, eg. 4 bits of unsigned binary can represent numbers from 0 to 15.
In unsigned binary all numbers are positive.
Here is a few conversions from decimal to binary:

Binary : Decimal
000 : 0
001 : 1
010 : 2
011 : 3
100 : 4
101 : 5
110 : 6
111 : 7

One's Compliment

One's compliment was an old way of specifying signed binary.

The way of specifying a number as negative in binary was to set the most significant bit (The left most bit) to a 1.
0XXX would be a positive number and 1XXX would be a negative number.

In one's compliment negative numbers are represented by setting the most significant bit (The left most bit) and flipping all the other individual bits to the opposite.
For example to get -2 in binary:

010 (+2 in decimal)
-> 110 (Set the most significant bit to 1)
-> 101 (flip all other bits, -2 in decimal)

Here is a few conversions from decimal to binary (one's compliment):

Binary : Decimal
1000 : -7
1001 : -6
1010 : -5
1011 : -4
1100 : -3
1101 : -2
1110 : -1
1111 : -0
0000 : +0
0001 : +1
0010 : +2
0011 : +3
0100 : +4
0101 : +5
0110 : +6
0111 : +7

The issue with one's compliment is that there are two zeros - 000 = +0, 111 = -0 and adding one's compliment numbers together does not always correctly sum, for example:

5    + -3  = 0 (Decimal)
0101 + 1100 = 10001 = 0001 (drop the left most bit as it is out out of the 4-bit scope)

Two's Compliment

Two's compliment can represent numbers from -2bits - 1 to 2bits - 1 - 1, eg. two's compliment in 4 bits can represent numbers from -8 to 7
Two's compliment is a solution to the problems that one's compliment has.
To turn a binary number to its negative, start by doing the same thing as one's compliment, then just add 1 to the result for example:

0101 (unsigned binary : 5 in decimal)
1010 (one's compliment)
1011 (two's compliment : -5 in decimal)
Examples

Here is a few conversions from decimal to binary (two's compliment):

1000 : -8
1001 : -7
1010 : -6
1011 : -5
1100 : -4
1101 : -3
1110 : -2
1111 : -1
0000 : +0
0001 : +1
0010 : +2
0011 : +3
0100 : +4
0101 : +5
0110 : +6
0111 : +7
Other Notes

Two's compliment is like the standard way of looking at binary but the most significant bit now represents the negative version of itself as this table shows:

-8 4 2 1 Calculation Result (Decimal)
1 0 0 0 1x-8 + 0x4 + 0x2 + 0x1 -8
1 0 0 1 1x-8 + 0x4 + 0x2 + 1x1 -7
1 0 1 0 1x-8 + 0x4 + 1x2 + 0x1 -6
1 0 1 1 1x-8 + 0x4 + 1x2 + 1x1 -5
1 1 0 0 1x-8 + 1x4 + 0x2 + 0x1 -4
1 1 0 1 1x-8 + 1x4 + 0x2 + 1x1 -3
1 1 1 0 1x-8 + 1x4 + 1x2 + 0x1 -2
1 1 1 1 1x-8 + 1x4 + 1x2 + 1x1 -1
0 0 0 0 0x-8 + 0x4 + 0x2 + 0x1 0
0 0 0 1 0x-8 + 0x4 + 0x2 + 1x1 1
0 0 1 0 0x-8 + 0x4 + 1x2 + 0x1 2
0 0 1 1 0x-8 + 0x4 + 1x2 + 1x1 3
0 1 0 0 0x-8 + 1x4 + 0x2 + 0x1 4
0 1 0 1 0x-8 + 1x4 + 0x2 + 1x1 5
0 1 1 0 0x-8 + 1x4 + 1x2 + 0x1 6
0 1 1 1 0x-8 + 1x4 + 1x2 + 1x1 7

Octal

Octal is base 8 and is easy to convert from/to binary due to its special property, that which is having 2 as one of its roots, eg. 23 = 8
Octal digits never exceed 7, 8 is represented by 10.

Binary to Octal

Number to convert:

01010101000111

Since octal is 23 we can separate the binary digits in sets of threes from the right to the left.

01 010 101 000 111

Since the first set of numbers has only 2 numbers in it we add leading zeros as necessary.

001 010 101 000 111

Convert these sets of threes into Decimal or Octal (Same thing since a single octal (8) digit does not exceed decimal (10)):

1 2 5 0 7

Concatenate the results together and you have your Octal representation:

12507

Hexadecimal

Hexadecimal is base and is favoured in computing due to it being a larger base than Octal or Decimal and it has the property of having 2 as one of its roots, eg. 24 = 16
Hexadecimal digits represent the decimal numbers from 0-15 where digits above 9 are represented by letters.
Here is few conversions from Hexadecimal to Decimal:

Hexadecimal : Decimal
0 : 0
1 : 1
2 : 2
3 : 3
4 : 4
5 : 5
6 : 6
7 : 7
8 : 8
9 : 9
A : 10
B : 11
C : 12
D : 13
E : 14
F : 15

Binary to Hexadecimal

Number to convert:

01110101000111

Since hexadecimal is 24 we can separate the binary digits in sets of fours from the right to the left.

01 1101 0100 0111

Add leading zeros if necessary:

0001 1101 0100 0111

Convert the groups into decimal (from binary):

1 13 4 7

Convert the sections into hexadeimal (from decimal):

1 D 4 7

Concatenate the results together and you have your Hexadecimal representation:

1D47