标签:string rgs substring stat demo 十进制 mat 就是 ring
//二,八,十六,进制转为十进制(字符串知识点方法)
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);
}
}
标签:string rgs substring stat demo 十进制 mat 就是 ring
原文地址:https://www.cnblogs.com/YangK123/p/12306795.html