Java Reference
In-Depth Information
represent the character ' A' because ( 0041) 16 is the hexadecimal representation
of the integer (65) 10 that represents the character A , but in the computer, this is
maintained as the binary integer ( 1000001) 2 .
Maintaining the binary representation in an array
When we keep the binary representation of a nonnegative integer n in an
array d with the minimum number of elements, we place bit d 0 in element d[0] ,
d 1 in d[1] , and so on. Thus, we can write:
n = i in 0..d.length-1 d[i]*2 i
This means that if n=0 , the array has 0 elements —yes, in Java, you can
create an array with 0 elements. If n=8 , array d is {0 , 0 , 0 , 1} —our conventional
way of writing the array puts the least significant bit first, so we have to look at
the array in reverse to see it as a binary integer: 1000 .
Converting an integer to base 2
Suppose int variable n contains a non-negative integer. We write a function
that produces the binary representation of n in an array d of exactly the right
length. Thus, each bit d i shown above will be in array element d[i] . We inves-
tigate how to calculate the bits of the binary representation of n>0 , where:
n = d k-1 *2 k-1 + ... + d 1 *2 1 + d 0 *2 0
From this formula, we see that:
n%2 = d 0
/** = an array d[0..] that contains exactly the binary representation of n (n ≥ 0) */
public static int [] IntToBinary( int n) {
int [] d= new int [32];
int x= 0;
int k= 0;
// inv: the binary representation of n is:
// the binary representation of x followed by the reverse of b[0..k-1]
while (x != 0) {
d[k]= x % 2;
x= x / 2;
k= k + 1;
}
int [] dc= new int [k];
System.arraycopy(d, 0, dc, 0, k);
return dc;
}
Figure 1II.2:
Function IntToBinary
Search WWH ::

Custom Search