In peacetime use, the conversion of the binary as long as the use of integer this wrapper class method can be completed.
But in fact, we can use their own methods to achieve, which helps beginners understanding of the computer's underlying operations. The following example uses a table-based method to complete the conversion of a binary.
Before you begin, it is necessary to understand the concepts of the characteristics of each system and the bit.
As we all know, in the computer, memory is stored in binary data, that is, by 0, one to represent the content of the data.
bit is the smallest unit in the computer that represents every 0 or 1,bit of binary data.
It is important to note that the basic computer storage unit is byte (byte), which is represented by 8 bits, which is 1 byte = 8 bit.
Java can support octal, decimal, and hexadecimal representations, respectively:
Octal: Front 0, as in octal notation 5 to write 05.
Decimal: No front-facing, such as 5 is the decimal in the 5.
Hex: Front 0x or 0X, as in hexadecimal notation 5 to be written as 0x5.
If you generate data of type int with a value of 60, it consumes 32 bits of space in memory. As shown below:
0000-0000 0000-0000 0000-0000 0011-1100
Hexadecimal values are represented by the 16 numbers 0~9 and A~f , which are rounded when 16 is satisfied. 60 is represented in hexadecimal in Java as: 0x3C, which behaves in memory as:
The octal value is represented by the 8 number of 0~7, and is rounded when 8 is satisfied. 60 in Java, denoted by octal: 074, in memory as:
From the above rules can be seen, the binary in every 4 bits (2 of the Power of 4 =16), which represents 1 bits in hexadecimal, and to get the value on the 16 binary bits, you can use the bitwise operation & 15 (binary number 1111).
In the same vein, every 3 bits in the binary (2 of the 3 power =8) represent 1 bits in the octal, and to derive the values on the 8 digits, you can use bit arithmetic & 7 (binary number 111) to derive.
Based on the above analysis, you can design the code:
1 classTransform2 {3 Public Static voidMain (string[] args)4 {5Tohex (60);6Toba (60);7ToBin (60);8 }9 Ten //Decimal Turn binary One Public Static voidToBin (intnum) A { -Trans (num,1,1); - } the - //Decimal Turn octal - Public Static voidToba (intnum) - { +Trans (num,7,3); - } + A //Decimal Turn hex at Public Static voidTohex (intnum) - { -Trans (num,15,4); - } - - //specific conversion process. in //The first parameter in the method is the number that needs to be converted, the second argument is the number on the bitwise Operation &, and the third parameter is the bits to move. - Public Static voidTrans (intNumintBaseintoffset) to { + //defines an array, which corresponds to a value, and can be viewed as a query table. - Char[] chs = {' 0 ', ' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 ', ' 6 ', ' 7 ', ' 8 ', ' 9 ', ' A ', ' B ', ' C ', ' d ', ' e ', ' F '}; the Char[] arr =New Char[32]; * intpos =arr.length; $ Panax Notoginseng if(num==0) - { the //if the number to convert is 0, no conversion is required. +SYSTEM.OUT.PRINTLN (0); A } the + while(num!=0) - { $ //the value of each bit in the specified binary is obtained and stored in an array. $ inttemp = num &Base; -Arr[--pos] =Chs[temp]; - //The bits of the original value moves the specified number of digits to the right after each one is given a specified binary value, and 0 is prepended. thenum = num >>> offset;//Shift-Fill 0. - }Wuyi the for(intx=pos;x<arr.length;x++) - { Wu if(x== (arr.length-1)) { - System.out.println (arr[x]); About}Else { $ System.out.print (arr[x]); - } - } - } A}
Java Basics: Decimal conversion Other binary