zoukankan      html  css  js  c++  java
  • Java 进制及转换

    Java 整型的表现形式

    Java 数据类型中有四种整型,分别是 byte、short、int、long,而整型定义下的数据还会按进制来区分:

    • 十进制整数:都是以 0-9 这九个数字组成,不能以 0 开头,例如 12,-127

    • 二进制整数:0 和 1 两个数字组成,以 0b 开头,例如 0b011 (对应于十进制的 3 )

    • 八进制整数:由 0-7 数字组成,为了区分与其他进制的数字区别,开头都是以 0 开始,例如014(对应于十进制的 12)

    • 十六进制整数:由 0-9 和 A-F 组成,为了区分于其他数字的区别,开头都是以 0x 或 0X 开始,例如0XF(对应于十进制的15)

    进制的由来

    几乎每个民族最早都使用都十进制计数法,这是因为人类计数时自然而然地首先使用的是十个手指,但是这不等于说只有十进制计数法一种计数方法。

    例如,世界各国在计算年月日时不约而同地使用 “十二进制” 12 个月为一年

    例如,我国过去 16 两才算为一斤,这就是 “十六进计数法”, 一个星期七天,这个就是 ”七进制计算法”。

    计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用 “1” 和 “0” 表示。

    不同进制整数转换方法

    • R 进制转十进制(不分整数和小数部分)
      方法:位权加和(将R进制按权展开,再在十进制的数制系统内进行计算)

      举例:27(八进制)-> 23(十进制)
      27 = 2 x 8 ^ 1 + 7 x 8 ^ 0 = 2 x 8 + 7 x 1 = 23

    • 十进制转 R 进制
      方法:除基取余法(最后余数为最高位)

      举例:11(十进制)->1011(二进制)
      11 / 2 = 5 (余数为1)
      5 / 2 = 2 (余数为1)
      2 / 2 = 1(余数为0)
      1/2 = 0(余数为1)最高位
      将余数从下向上写在一起就答案: 1011

    可能你会有疑问,在我们生活中主要使用十进制,为何计算机还要使用这么多种进制呢?我就拿十六进制举例,说一说它在计算机里的用处。

    • 计算机硬件是 0101 二进制的,16 进制刚好是 2 的倍数,更容易表达一个命令或者数据

    • 最早规定 ASCII 字符集采用的就是 8 bit( 1个字节 ),8 bit用 2 个 16 进制直接就能表达出来,不管阅读还是存储都比其他进制要方便

    • 计算机中 CPU 运算也是遵照 ASCII 字符集,以16、32、64的这样的方式在发展,因此数据交换的时候 16 进制也显得更好

    • 为了统一规范,CPU、内存、硬盘我们看到都是采用的 16 进制计算

    十六进制使用场景
    • 网络编程:数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达

    • 数据存储:存储到硬件中是 0101 的方式,存储到系统中的表达方式都是 byte 方式

    • 一些常用值的定义,比如:我们经常用到的 html 中 color 表达,就是用的 16 进制方式,4 个 16 进制位可以表达好几百万的颜色信息

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/binbingg/p/13535263.html
Copyright © 2011-2022 走看看