Tutorials Home
What's New
Top Rated
Submit
myTutes
Random!
Conversion of Number Systems
Author: Mr.Ehab
2) Function decimalToOctal has the following script:
function decimalToOctal (number) {
array2.splice(0);
array3.splice(0);
for (i = 0; i <= number; i ++) {
binary = Math.pow (8, i);
if (binary> number) {
arrayelement = i - 1;
break;
}
array3 [i] = binary;
}
for (j = arrayelement; j>= 0; j --) {
if (j == arrayelement) {
binaryelement = int (number / array3 [j]);
binaryremainder = int (number % array3 [j]);
array2[ 0 ] = binaryelement;
} else {
binaryremainder1 = binaryremainder;
binaryremainder = int (binaryremainder % array3 [j]);
binaryelement = int (binaryremainder1 / array3 [j]);
array2 [arrayelement - j] = binaryelement;
}
}
return array2.join ("");
}
Notice that this script is the same as above but with minor differences. We use powers of 8 instead of 16. No characters are involved.
3) Function binaryToDecimal has the following script:
function binaryToDecimal (number) {
array7.splice(0);
array6.splice(0);
for (i = 0; i <= length (number) - 1; i ++) {
array6 [i] = Math.floor (number / Math.pow (10, length (number) - i - 1)) - Math.floor (number / Math.pow (10, length (number) - i)) * 10;
}
decimal1 = 0;
for (j = 0; j
Notice the first for structure. Length (number) specifies the number of digits in the number. Let's trace this for structure to know what it does. Suppose I entered the binary number 11011 in the input variable, then:
Length of the number is 5.
for (i = 0; i <= 4; i ++)
Values of elements of array6:
For i = 0, array6 [0] = floor(11011/10000) - floor(11011/100000)*10 = 1
For i = 1, array6 [1] = floor(11011/1000) - floor(11011/10000) *10 = 1
For i = 2, array6 [2] = floor(11011/100) - floor(11011/1000) *10 = 0
For i = 3, array6 [3] = floor(11011/10) - floor(11011/100) *10 = 1
For i = 4, array6 [4] = floor(11011/1) - floor(11011/10) *10 = 1
Cool, ha?! As you notice, this for structure initializes array6 such that its elements are the digits of the binary number.
Notice the second for structure. Let's have a trace:
for (j = 0; j <5; j ++)
Output:
For j = 0
Array7 [0] = 2*2*2*2 = 16
Decimal = 16*1 = 16
Decimal1 = 0 + 16 = 16
For j = 1
Array7 [0] = 2*2*2 = 8
Decimal = 8*1 = 8
Decimal1 = 16 + 8 = 24
.........
Once execution is finished, decimal1 will be the required decimal number!
| » Level Intermediate |
|
|
Added: : 2002-03-04
Rating: 5.88 Votes: 42
Hits: 1098
|
| » Author |
|
Student studying Computer Engineering and Graphic Design.
|
| » Download |
|
Download the files used in this tutorial.
|
|
Download (34 kb)
|
|
Get conversion and unzipping tools
for PC and Mac here!
|
| » Forums |
|
More help? Search our boards for quick answers!
|
|
Please rate this tutorial, 10 is the top rating, you can also click the
comments link to read/write a review.
|
|
|