Java十六进制转换为十进制

Posted

tags:

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

求解下题
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一行字符串,对字符串做如下处理:滤去所有的非十六进制字符后,组成一

个新字符串(十六进制形式),然后将其转换为十进制数后输出。
例:括号内是说明
输入:
3 (输入3行字符串)
10
Pf4+1
-+A
输出:
16
3905
10

import java.util.Scanner;
public class Test60025
public static void main(String []args)
int ri, repeat, i,number;
char ch;
String str;
Scanner in=new Scanner(System.in);
repeat=Integer.parseInt(in.nextLine());
for(ri=1; ri<=repeat; ri++)
str=in.nextLine();
/*---------*/
System.out.println(number);


import java.util.Scanner;

public class Test60025
public static void main(String []args)
int repeat, i;
String s;
System.out.print("输入Repeat的值:");
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
in.nextLine();
int arr[]=new int[repeat];
for(i=0; i<repeat; i++)
System.out.print("输入任意字符:");
s=in.nextLine();
arr[i]=Integer.valueOf(captureHex(s), 16);

System.out.println("输出:");
for (int j = 0; j < arr.length; j++)
System.out.println(arr[j]);




public static String captureHex(String target)//获取字符串中十六进制的字符,A与a为同一字符
char ch=0;
String validStr="";
for (int i = 0; i < target.length(); i++)
ch=target.charAt(i);
if((ch>='0'&&ch<='9')||(ch>='a'&&ch<='f')||(ch>='A'&&ch<='F'))
validStr+=ch;


if("".equals(validStr))
System.out.println("非法输入,此行不含任何十六进制字符");
validStr="0";

return validStr;


参考技术A int change(String str)

String a=str.replaceAll("[\\D&&[^a-fA-F]]","");//将不是16进制的数取代为"",正则表达示表示非数字并且不是a-f之间的
int b=Integer.parseInt(a,16);//将字符串按16进制转换为int
return b;
参考技术B 浙大的,浙大的,题库60025 参考技术C import java.util.Scanner;
public class Test60025
public static void main(String []args)
int ri, repeat, i,number;
char ch;
String str;
Scanner in=new Scanner(System.in);
repeat=Integer.parseInt(in.nextLine());
for(ri=1; ri<=repeat; ri++)
str=in.nextLine();
number=0;
for(i=0;i<str.length();i++)
ch=str.charAt(i);
if(ch>='0'&&ch<='9'||ch>='A'&&ch<='F'||ch>='a'&&ch<='f')
if(ch>='0'&&ch<='9')
number=number*16+(ch-'0');
else if(ch>='A'&&ch<='F')
number=number*16+(ch-'A'+10);
else
number=number*16+(ch-'a'+10);


System.out.println(number);




----------------------------------------------------
LZ,我深深怀疑你是浙大的学生……

Java入门:基础算法之二进制转换为十进制

Java有两种方法可以将二进制数转换为十进制数:

1)使用Integer类的Integer.parseInt()方法。

2)自己编写转换逻辑。

方法1:使用Integer.parseInt()实现二进制转换为十进制

import java.util.Scanner;
class BinaryToDecimal {
    public static void main(String args[]){
       Scanner input = new Scanner( System.in );
       System.out.print("Enter a binary number: ");
       String binaryString =input.nextLine();
       System.out.println("Output: "+Integer.parseInt(binaryString,2));
    }
}

输出:

Enter a binary number: 1101
Output: 13

方法2:使用自定义逻辑实现二进制转换十进制

public class Details {
 
  public int BinaryToDecimal(int binaryNumber){
 
    int decimal = 0;
    int p = 0;
    while(true){
      if(binaryNumber == 0){
        break;
      } else {
          int temp = binaryNumber%10;
          decimal += temp*Math.pow(2, p);
          binaryNumber = binaryNumber/10;
          p++;
       }
    }
    return decimal;
  }
 
  public static void main(String args[]){
    Details obj = new Details();
    System.out.println("110 --> "+obj.BinaryToDecimal(110));
    System.out.println("1101 --> "+obj.BinaryToDecimal(1101));
    System.out.println("100 --> "+obj.BinaryToDecimal(100));
    System.out.println("110111 --> "+obj.BinaryToDecimal(110111));
  }
}

输出:

110 --> 6
1101 --> 13
100 --> 4
110111 --> 55

 

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

十六进制转换十进制(JAVA版)

将二进制转换为十进制/十六进制/八进制(java)[关闭]

java中怎样把图片转换成二进制

Java入门:基础算法之二进制转换为十进制

在 Java 中将字符串转换为十六进制

Java将整数转换为十六进制整数