您的位置:首页 > 其它

进制转换(数据存储)

2015-07-08 21:03 134 查看
class ArrDemo4
{
public static void main(String[] args)
{
tobin(0);
toba(60);
tohex(-6);
}

//十进制转二进制
/*public static void tobin(int x)
{
StringBuffer sb=new StringBuffer();
while(x!=0)
{
sb.append(x%2);
x=x/2;
}
System.out.println(sb.reverse());
}
*/

//下面转十六进制
/*public static void tohex(int x)
{
StringBuffer sb=new StringBuffer();
while(x!=0)
{
int t=x&15;
if(t>9) sb.append((char)(t-10+'A'));
else sb.append(t);
x=x>>>4;
}
System.out.println(sb.reverse());
}*/
//这个可以算负数,上面的转二进制的算法不能算负数;

//转二进制可以算负数的算法
/*public static void tobin(int x)
{
StringBuffer sb=new StringBuffer();
while(x!=0)
{
int t=x&1;
sb.append(t);
x=x>>>1;
}
System.out.println(sb.reverse());
}*/

//所有功能合并
public static void tobin(int num)//转二进制
{
arrzh(num,1,1);
}

public static void toba(int num)//转八进制
{
arrzh(num,3,7);
}

public static void tohex(int num)//转十六进制
{
arrzh(num,4,15);
}

public static void arrzh(int num,int z,int base)
{
StringBuffer sb=new StringBuffer();
if(num==0) System.out.println(0);
else
{
while(num!=0)
{
int t=num&base;
if(t>9) sb.append((char)(t-10+'A'));
else  sb.append(t);
num=num>>>z;
}
System.out.println(sb.reverse());
}
// int a[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//也可以用数组来存储数据
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: