java中各种进制间的转换

来源:互联网 发布:巨潮数据库 编辑:程序博客网 时间:2024/06/07 09:29

十进制转换为二进制
 public  class A{
  public static void main(String[] args){
   //任意定义一个十进制数
   int num = 100;
  //定义一个数组用于存储值
  int sub[] = new int[100];
  //定义数组下标
  int index = 0;
  while(num!=0){
   index++;
   sub[index] = num %2;
   num/=2;
}
 for(int i=index;i>0;i--){
  System.out.println(sub[i]);
}
}
}
   //把十进制转换为八进制,十六进制方法类似,只需把基数2替换为8或
  //当把十进制转换为十六进制进需要判断一下
  //把十进制转换为十六进制
   public static void main(String[] args){
 //任意定义一个十进制数
   int num = 100;
  //定义一个数组用于存储值
  int sub[] = new int[100];
  //定义数组下标
  int index = 0;
  while(num!=0){
   index++;
   sub[index] = num %16;
   num/=16;
}
 for(int i=index;i>0;i--){
    if(sub[i]>=10){
    System.out.println(String.valueOf((char)(sub[i] +55)));
}else{
   System.out.print(sub[i]);

}
 
}
}
}
 

  //把二进制转换为十进制
 public static void main(String[] args){
  //任意定义一个二进制数   
  String str = "1100100";
  //定义一个数组保存值
  int sub[] = new int[100];
  //定义数组下标的值
   int index = 0;
  //获取字符串长度
  int len = str.length();
  //定义相加的值
  int sum=0;
  for(int i=0;i<len;i++){
    index++;
    char ch = str.charAt(i);
    int num = Integer.valueOf(String.valueOf(ch));
    sub[index] = num;
}
   for(int k=index;k>0;k--){
   int w=1,s=1;
   //取最后一种特殊情况
   if(k == index){
    s = sub[k]*1;
    sum+=s;
  }else{
   for(int j=k;j<index;j++){
        s = sub[k]*2;
        w*=s;
}
  sum+=w;
}
}
System.out.println(sum);
}
}
  //把十六进制转换为十进制
    public static void main(String[] args){
   //任意定义一个十六进制数   
  String str = "64";
  //定义一个数组保存值
  int sub[] = new int[100];
  //定义数组下标的值
   int index = 0;
  //获取字符串长度
  int len = str.length();
  //定义相加的值
  int sum=0,su=0;
  for(int i=0;i<len;i++){
    index++;
    char ch = str.charAt(i);
    int num = (int)ch;
    //判断是否有字母
    if(num-55>=10){
     num-=55;
     sub[index] =num;
}else{
    num = Integer.valueOf(String.valueOf(ch));
    sub[index] = num;
}
}
 for(int k=index;k>0;k--){
    int w=1,s=1;
   //判断特殊情况
   if(k==index){
    s = sub[k] *1;
    sum+=s;
 }else{
   for(int j=k;j<index;j++){
      s = 1*16;
      w*=s;
}
   su = sub[k] *w;
   sum+=su;
}
}
  System.out.println(sum);
}
}
   //把八进制转换为十进制方法与二进制转换为十进制方法类似

 

  //把二进制转换为十六进制
  //可先把二进制转换为十进制在把十进制转换为十六进制(因为所用方法相同,不与代码了)

 

  //类似把八进制转换为十六进制,二进制
 //也可先把八进制转换为十进制,在把十进制转换为十六进或二进制
 
 

   /*
     以上代码都通过编译可以运行
     如有什么不懂或好的方法请联系我,谢谢
     联系方式:zytcainiao@163.com
  */
 

原创粉丝点击