本帖最后由 JYcainiao 于 2015-10-9 09:21 编辑
//定义一个函数 用来计算一个数的二进制 八进制 十六进制
class jinzhiArr
{
//二进制
public static void toBin(int num)
{
int[] arr=new int[32];
for (int pos=arr.length-1;pos>=0 ; pos--)//定义一个指针,将%出来的数
{
arr[pos]=num & 1; //arr[pos]=num %2只有当num为正数时 才有正确结果 所以不用这个
num=num>>1; //num=num /2; 一样的效果
}
bianliArr(arr);
}
//八进制
public static void toBa(int num)
{
int[] arr=new int[?];//这里应该给数组定义为多少呢?
for (int pos=arr.length-1;pos>=0 ; pos--)//定义一个指针,将%出来的数
{
arr[pos]=num & 7; //arr[pos]=num %2只有当num为正数时 才有正确结果 所以不用这个
num=num>>3; //num=num /8; 一样的效果
}
bianliArr(arr);
}
//十六进制
public static void toHex(int num)
{
int[] arr=new int[8];
for (int pos=arr.length-1;pos>=0 ; pos--)//定义一个指针,将%出来的数
{
arr[pos]=num & 15; //arr[pos]=num %2只有当num为正数时 才有正确结果 所以不用这个
num=num>>4; //num=num /16; 一样的效果
}
bianliArr(arr);
}
public static void bianliArr(int[] arr)
{
System.out.print("[");
for (int x=0;x<arr.length ;x++ )
{
if (x<arr.length-1)
System.out.print(arr[x]+",");
else
System.out.print(arr[x]);
}
System.out.print("]");
}
public static void main(String[] args)
{
toHex(6);
}
}
|
|