Java Reference
In-Depth Information
(10110) 2
The base is 2 . The rightmost digit (or bit), 0 , is in the units position, the 1 to its
left is in the twos position, the 1 to its left is in the fours position, the 0 to its left
is in the eights position, and the leading 1 is in the sixteens position. Because the
base is 2 , this number is a representation for the integer that is the value of this
expression:
1*2 4 + 0*2 3 + 1*2 2 + 1*2 1 + 0*2 0
In general, a positive integer in the base 2 system has the form
(d k-1 ...d 1 d 0 ) 2 ,
where each d i is either 0 or 1 and d k-1 =1 . Thus, k is the number of bits need-
ed to represent the integer without leading zeros. The value (d k-1 ...d 1 d 0 ) 2 is:
d k-1 *2 k-1 + ... + d 1 *2 1 + d 0 *2 0,
i.e.
i in 0..k-1 d i *2 i
In keeping with this representation, we represent zero by k=0 , i.e. with 0 bits.
The connection between binary, octal, and hexadecimal
Below, we show the first eight integers in binary and, underneath them,
their representation in octal:
000 001 010 011 100 101 110 111 (binary)
0 1 2 3 4 5 6 7 (octal)
Based on this description, you can see that to produce the octal representa-
tion from the binary representation, just replace each sequence of three bits
(starting with the least significant) by its octal representation. For example:
(101011) 2 is (53) 8
(1110101111) 2 is (1657) 8
In the same way, we can translate from binary to hexadecimal by replacing
each four-bit segment (starting with the least-significant bit, i.e. starting at the
right) by its one-character hexadecimal equivalent. Here are examples:
(1011) 2 is (B) 16
(101011) 2 is (2B) 16
(1011001110101111) 2 is (B3AF) 16
We often write numbers in hexadecimal rather than binary notation, even
though they are maintained in binary in a computer, because the hexadecimal
notation is more compact and easy to read and because we can easily translate
from one notation to the other.
For example, in a Java program, we can use the Unicode literal '\u0041' to

Search WWH ::

Custom Search