Java进制类型转换讲解(个人心得)

Java进制转换

        在前几天巩固基础的时候刷到了进制转换的题目,直接就上手做了(心里很喜欢这种相对简单的题目),因为有一系列的API可以使用,结果写着写着就蒙圈了。

        于是下定决心重新梳理一遍,以下是个人总结心得,有错误之处一定要提出来,一起学习,共同进步,谢谢大家了!

题目概述:输入一个八进制的数,输出其相应的十六进制数。

总体思路(个人理解): 

        首先输入的必须是字符串类型的一个数值字符串。因为编译器读取的数值默认都是十进制,所以所谓的进制说不定只是脑海中的进制,而不是当前代码中的进制类型。况且十六进制数值有效为(0 ~ 9 , A ~ F(大小写都可以)),不可能让一个数值类型取到字符吧。

       再者,想象和现实是不一致的!假设输入的是一个数值类型,自己想的是我要输入的是一个某进制的数,实际上都被编译器认为是十进制的了!

        数值字符串(用户确定的进制)-->十进制的数值-->指定进制的数值字符串(用户指定的进制)
        但是字符串类型编译器无法识别进制。此时就可以调用Long.parseLong(String num,int radix)方法进行转换(Integer.parseInt,Double.parsedouble也是可以的)
        其中;num为将要转换的数值字符串,radic为该字符串的进制类型,此方法的返回值是十进制的数值
        接着使用过Long.toString(long num,int radix)方法将十进制的数值转换为指定进制的数值。(Integer.toString,Double.toString也是可以的)
        此时转换得到的字符串是一个指定进制的数值,最后用System.out.println(str)输出转换后的数值。

用到的方法:

        个人理解:parseLong返回值是long,也就是一个数值,所以需要后面的radix确定进制。

        个人理解:这里用到的方法是toString(long i, int radix),这个方法是可以指定任意进制类型的,比较灵活。这个方法返回的是一个字符串,返回的字符串是由radix指定的进制类型的数值字符串。

        当然也有直接的方法:

        这三个转成指定进制的方法(从上到下:16,8,2),个人觉得只需记住一个toString()方法即可,因为可以任意进制,上述的进制也就包含在内了。(可能是我比较懒吧)

        代码展示:八进制转十六进制(想要实现其他进制的转换只需修改两个方法中的radic即可):

import java.util.*;
public class Learn {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();
        long temp = Long.parseLong(num,8);
        String res = Long.toString(temp,16);
        System.out.println(res);
    }
}​

希望我的小小总结希望能帮助到未曾谋面的你们。

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值