上机题-进制转换

题目描述

写一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。


输入描述:
* 输入一个十六进制的数值字符串。

输出描述:
* 输出该数值的十进制字符串。

输入例子:
* 0xA

输出例子:
* 10


算法实现:

方法一:

  1. 将十六进制的数值字符串转换成十进制字符串,用Integer类的
    public static int parseInt(String s, int radix)
    方法:使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

  2. substring 方法 截取字符串
    public String substring(int beginIndex, int endIndex)
    方法: 第一个int为开始的索引,对应String数字中的开始位置;第二个是截止的索引位置,对应String中的结束位置

    1. 取得的字符串长度为:endIndex - beginIndex;
    2. 从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符

    例如:
    “hamburger”.substring(4, 8) returns “urge”
    “smiles”.substring(1, 5) returns “mile”
    取长度大于等于3的字符串a的后三个子字符串,只需a.subString(a.length()-3, a.length());

代码如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        //多个测试用例使用while(sc.hasNext()){}
        while(sc.hasNext()){
            String s = sc.next().substring(2);
            System.out.println(Integer.parseInt(s, 16));
        }   
    }   
}

方法二:


JAVA 转换 总结

  1. 类:Integer或Long
    方法:toBinaryString(int i)
    整数 转换成 二进制
    (参数i 表示要转换成字符串的整数)

  2. 类:Integer或Long
    方法:toOctalString(int i)
    整数 转换成 八进制
    (参数i 表示要转换成字符串的整数)

  3. 类:Integer或Long
    方法:toHexString(int i)
    整数 转换成 十六进制
    (参数i 表示要转换成字符串的整数)

  4. 类:Integer或Long
    方法:toString(int i,int radix)
    任意进制整数 转换成 其他进制的整数
    (参数i:表示要转换成字符串的整数,radix:表示用于字符串表示形式的基数)

        int H_int = 0xA57B; //十六进制声明:前面加0x
        String h_string= Integer.toString(H_data, 2);
        System.out.println(h_2);
    public class Main {
    public static void main(String[] args){
        int O_data = 0766; //八进制声明:前面加0
        int T_data = 123456; //十进制声明
        int H_data = 0xA57B; //十六进制声明:前面加0x
    
        // 八进制转换成二进制
        System.out.println("八进制" + O_data + "转换成二进制:");
        System.out.println(Integer.toString(O_data, 2));
        System.out.println(Integer.toBinaryString(O_data));
    
        // 八进制转换成十进制
        System.out.println("八进制" + O_data + "转换成十进制:");
        System.out.println(Integer.toString(O_data, 10));
        System.out.println(Integer.toString(O_data));
    
        // 八进制转换成十六进制
        System.out.println("八进制" + O_data + "转换成十六进制:");
        System.out.println(Integer.toString(O_data, 16));
        System.out.println(Integer.toHexString(O_data));
    
        //十进制转换成二进制
        System.out.println("十进制" + T_data + "转换成二进制:");
        System.out.println(Integer.toString(T_data, 2)) ;
        System.out.println(Integer.toBinaryString(T_data));     
    }
    }
  5. 类:Integer或Long
    方法:parseInt(String s) 或 parseLong(String s)
    将字符串 转换成 整数

    String s = "0123";
    int b = Integer.parseInt(s);
    System.out.println(Integer.parseInt(s));    
  6. 类:Integer或Long
    方法:parseInt(String s, int radix) 或 parseLong(String s, int radix)
    任意进制字符串 转换成 其他进制的整数
    (参数s:表示要转换成整数的字符串;radix:表示用于整数表示形式的基数)

Java中在声明数字时默认采用的是十进制,可以在数字前加上特定的符号表示数字采用八进制或者十六进制。数字前面加数字0(零)表示该数字是八进制,例如:012。加0x(零x)表示该数字是十六进制。例如:0x00FF。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值