八十六进制转为十进制

Posted yangk123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八十六进制转为十进制相关的知识,希望对你有一定的参考价值。

//二,八,十六,进制转为十进制(字符串知识点方法)
public class PracticeDemo {
	public static void BOHextoD(int n,String string) 
	{
		  int sum = 0;
		  System.out.println("输出"+n+"进制数如下:");
		  for(int i = 0;i < string.length();i++)
		   { 
			  int num = 0;//num用于记录每一位上面的数字
			  //1.charAt()为提取字符串的特定字符 2.强制把char类型住转化为的int类型
			  int  m = string.charAt(i); 
			  if(n > 8)//提取十六进制各位上面的数字
			    {   
				  num = m >= ‘A‘?  m-‘A‘+10 : m-‘0‘;//‘A‘ = 65
			    }
			  else 
			    {   
				    num = m >= ‘0‘ ?  m - ‘0‘ : null;//‘1‘= 49 
			    } 
			    sum  += (int) Math.pow(n, string.length()-1-i)*num;
			    //权值乘以所在位上面的数字
		    }
		  System.out.println(sum+" "); 
	}
	 public static void main(String[] args)  {
		Scanner in = new Scanner (System.in);
		System.out.println("输入你要转的字符串");
		String  s = in.nextLine();
		int a = 2;//a=8,a=16  a为什么数字就是几进制转换
                BOHextoD(a,s);	  
   }
}
//二,八进制转十进制(数学知识点方法)
public class PracticeDemo {
	public static void BOtoD(int n,String string) {
		 int[] arr = new int[string.length()];//将字符串数组转换为一个整型数组
		 for(int i = 0;i < string.length();i++) 
		 {   // 用for循环解析子串。 parseInt()把字符串解析并且返回一个整型
			 arr[i] = Integer.parseInt(string.substring(i,i+1));
		 }
		 int num = 0; //用于提取各位上面的数字
		 int sum  = 0;
		 //查表法 :权值
		 int[] c = new int[20];
		 for(int i = 0;i < 20;i++) 
		   {
			 c[i] = (int) Math.pow(n, i);
		   }
		 //转为十进制
		 for(int i = 0;i < arr.length;i++) 
		  {
				
			 if(n > 2)  //八进制转换
			 {
				 for(int j = 0;j < 8;j++)
				  {
					if(arr[i] == j)
					  { 
			            num =  c[arr.length-1-i]*j ;//权值乘以数字
					  } 
				   } 
			 	  sum += num ;
			   }
			 else
			 {
				if(arr[i] == 1) 
				  {
					num =  c[arr.length-i-1];
				  }
		                else
		                  {
			   		num  = 0;
		                  }
				 sum += num ;
			 }
		  }
		 System.out.println(sum+"");
	}			 					 	
	 public static void main(String[] args)  {
		 Scanner in = new Scanner (System.in);
                 System.out.println("输入二进制数:");
		 String  s = in.nextLine();
	         BOtoD(2,s);
                // System.out.println("输入八进制数:");
		//String  s = in.nextLine();
		// BOtoD(8,s);
	 }
}

  

以上是关于八十六进制转为十进制的主要内容,如果未能解决你的问题,请参考以下文章

go语言怎么将二进制转为字符串

java进制转换方法

java中如何把十六进制转为十进制

C语言 将99(十进制)转为0x99(十六进制)并输出?

js 进制转换

十进制转八十六进制的字符串