java基础-常用进制

什么是进制

进制是进位计数制,也就是通过数字代表所有需要表达的含义。

常见的进制

二进制

二进制是计算机识别的一种表达形式,主要用0跟1表示,足二进一。

八进制

一种以8为基数的计数法,有0~7的8个数字组成,足八进一。

十进制

十进制基于位进制和十进位两条原则,即所有的位数都是有1~9十个数字组成,足十进一。基本用于数字。

十六进制

十六进制是一种16为基数的计数系统,有0~9数字和AF字母表示,其中AF表示(10~15)。

java开发中的进制转换

在日常开发过程中基本上不涉及到关注进制,但是在一些与硬件交互的数据上,比如硬件数据采集,基本上需要进行转换,比如数字需要转为十进制,而在传输过程中一般都是通过16进制进行数据传输,需要将16进制数据进行解析为我们想要的数据。

我在转换的时候比较习惯使用hutool的Convert.java类和HexUtil.java类,里面有丰富的数据转换方法。

十六进制转换

  // Integer自带方法专为数字
  Integer num = Integer.parseInt('Hex', 16);

    /**
     * 16进制字符串转为int
     *
     * @param value 16进制字符串
     * @return 16进制字符串int值
     * @since 5.7.4
     */
    public static int hexToInt(String value) {
        return Integer.parseInt(value, 16);
    }
    
        /**
     * 转为16进制字符串
     *
     * @param value int值
     * @return 16进制字符串
     * @since 4.4.1
     */
    public static String toHex(int value) {
        return Integer.toHexString(value);
    }

还有很多的方法,可以通过阅读工具类的源码或访问以下网址进行参考:

hutool的HexUtil介绍

为什么数据传输的时候比较常用十六进制

个人理解:

  1. 十六进制可以蕴含的表达内容丰富,可以表示一些其他进制无法表示的内容,如图片的字符串表现形式、加密解密、字符串
  2. 十六进制相对其他进制,比较节省资源占用,一位十六进制数占半个字节,所以十六进制一般是A0 00这种形式表示,但是我们一般解析过程中,都是以一个字节来进行转换。

什么是高字节、低字节

在编程语言中,字符一般是占16位,8位为一字节,所以有高位字节和低位字节。

在十六进制中,一个十六进制数有两个字节组成。正常情况下是高字节在前,低字节在后,但是会根据不同的解析协议进行处理。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容