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);
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十六进制转换为十进制的主要内容,如果未能解决你的问题,请参考以下文章