------- android培训、java培训、java学习型技术博客、期待与您交流! ----------
1)数组——十进制与二进制
public class ArrayTest {
public static void main(String[] args) {
toBin(6);
toBin(100);
toBin(222);
}
/*
* 十进制--->二进制
*/
public static void toBin(int num){
StringBuffer sb = new StringBuffer();
while(num > 0){
// System.out.println(num % 2);
sb.append(num % 2);
num = num / 2;
}
System.out.println(sb.reverse());
}
}
02)数组——查找法-十进制-->二进制-->十六进制
public class ArrayTest_2 {
public static void main(String[] args) {
toBin(6);
System.out.println();
toHex(666);
}
public static void toBin(int num){//二进制
//定义二进制的表。
char[] chs = {'0', '1'};
//定义一个临时存储容器。
char[] arr = new char[32];
//定义一个操作数组的指针
int pos = arr.length;
while(num != 0){
int temp = num & 1;
arr[--pos] = chs[temp];
num = num >>> 1;
}
for(int i = pos; i < arr.length; i++){
System.out.print(arr[i]);
}
}
public static void toHex(int num){//十六进制
char[] chs = {'0', '1', '2', '3'
,'4', '5', '6', '7'
,'8', '9', 'A', 'B'
,'C', 'D', 'E', 'F'};
//定义一个临时容器。
char[] arr = new char[8];
int pos = arr.length;
while(num != 0){
int temp = num & 15;
//System.out.println(chs[temp]);
arr[--pos] = chs[temp];
num = num >>> 4;
}
System.out.println("pos = " + pos);
//存储数据的arr数组遍历。
for(int i = pos; i < arr.length; i++){
System.out.print(arr[i] + ", ");
}
}
}
03)进制转换优化
public class ArrayTest_3 {
public static void main(String[] args) {
Array ay = new Array();
ay.toBin(-6);
ay.toBin(0);
ay.toBa(-60);
ay.toHex(60);
}
}
class Array{
/*
十进制-->二进制
*/
public static void toBin(int num){
Demo.trans(num, 1, 1);
System.out.println("");
}
/*
十进制-->八进制
*/
public static void toBa(int num){
Demo.trans(num, 7, 3);
System.out.println("");
}
/*
十进制-->十六进制
*/
public static void toHex(int num){
Demo.trans(num, 15, 4);
System.out.println("");
}
}
class Demo{
public static void trans(int num,int base,int offset){
if (num == 0){
System.out.println(0);
return;
}
char[] chs = {'0', '1', '2', '3'//定义表。
,'4', '5', '6', '7'
,'8', '9', 'A', 'B'
,'C', 'D', 'E', 'F'};
char[] arr = new char[32];//定义一个临时容器。
int pos = arr.length;//定义一个操作数组的指针
while(num != 0){
int temp = num & base;
arr[--pos] = chs[temp];
num = num >>> offset;
}
System.out.println("pos = " + pos);
for(int i = pos; i < arr.length; i++){
System.out.print(arr[i]);
}
}
}