//十进制——>二进制
public static void toBin(int num)
{
//定义一个容器存储数据。
StringBuffer sb=new StringBuffer();
while(num>0)
{
sb.append(num%2);
num=num/2;
}
System.out.println(sb);
System.out.println(sb.reverse());
}
//十进制——>十六进制
public static void toHex(int num)
{
StringBuffer sb=new StringBuffer();
for(int x=0;x<8;x++) //一个十进制 占32位! 4各位为一组, 所以循环8次可以循环完
{
int temp=num & 15;
if(temp>9)
//System.out.println((char)(temp-10+'A'));
sb.append((char)(temp-10+'A'));
else
//System.out.println(temp);
sb.append(temp);
//无符号右移4位;
num=num>>>4;
}
System.out.println(sb.reverse());
}
//查表法;
public static void toHex1(int num)
{
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[8]; //字符数组默认为'\u0000',每4个位为一组,数组长度8位可以存储32位数
int pos=arr.length;
while(num!=0) //用for时 会出现空位!!改为while
{
int temp=num & 15;
arr[--pos]=chs[temp]; //第一次存取时,倒序存储!!
num=num>>>4;
}
//存储数据 arr进行遍历
for(int x=pos;x<arr.length;x++){ //从有效位 打印数组
System.out.print(arr[x]);
}
}
//提取相同数据,数据转化;
public static void trans(int num, int base, int offset)
{
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;
}
for(int x=pos; x<arr.length;x++)
{
System.out.print(arr[x]+",");
}
}
public static void toBin(int num)
{
//定义一个容器存储数据。
StringBuffer sb=new StringBuffer();
while(num>0)
{
sb.append(num%2);
num=num/2;
}
System.out.println(sb);
System.out.println(sb.reverse());
}
//十进制——>十六进制
public static void toHex(int num)
{
StringBuffer sb=new StringBuffer();
for(int x=0;x<8;x++) //一个十进制 占32位! 4各位为一组, 所以循环8次可以循环完
{
int temp=num & 15;
if(temp>9)
//System.out.println((char)(temp-10+'A'));
sb.append((char)(temp-10+'A'));
else
//System.out.println(temp);
sb.append(temp);
//无符号右移4位;
num=num>>>4;
}
System.out.println(sb.reverse());
}
//查表法;
public static void toHex1(int num)
{
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[8]; //字符数组默认为'\u0000',每4个位为一组,数组长度8位可以存储32位数
int pos=arr.length;
while(num!=0) //用for时 会出现空位!!改为while
{
int temp=num & 15;
arr[--pos]=chs[temp]; //第一次存取时,倒序存储!!
num=num>>>4;
}
//存储数据 arr进行遍历
for(int x=pos;x<arr.length;x++){ //从有效位 打印数组
System.out.print(arr[x]);
}
}
//提取相同数据,数据转化;
public static void trans(int num, int base, int offset)
{
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;
}
for(int x=pos; x<arr.length;x++)
{
System.out.print(arr[x]+",");
}
}