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: