zoukankan      html  css  js  c++  java
  • 进制

    计算机中总共有以下四种进制,分别是:

    1.二进制,01

    2.八进制,01234567

    3.十进制,0123456789

    4.十六进制,0123456789ABCDEF

    计算机内存地址和为什么用16进制?

    为什么用16进制
    1、计算机硬件是0101二进制的,16进制刚好是2的倍数(2^4),更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示)
    2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便
    3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好
    4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算


    16进制用在哪里
    1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。
    2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式

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

     

    十六进制和二进制转换:

    二进制和十六进制的转换:
    十六位数的表示方法:
    十进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    二进制: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
    十六进制: 0 1 2 3 4 5 6 7 8 9 A B C D E F

    二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位:
    二进制:110110011011.1001
    转换: D 9 D. 9
    二进制:101110011011.1001
    转换: B 9 B. 9

    十六进制的表示发,用字母H作为后缀表示,用0X作为前缀表示;
    比如:BH表示16进制为11;0X23表示16进制的23

    另外,需要注意的是,向左(或向右)取四位时,取到最高位(最低位)时,如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算。
    比如:
    10111.011
    补位:0001 0111.0110
    十六进制:1 7 6

    十六进制转换为二进制则是与上面的二进制转十六进制相反。方法是一分为四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧。
    如:
    十六进制: B F 4. B 5
    二进制 : 1011 1111 0100. 1011 0101
    下面是截图,以防排版导致的错位。

     

  • 相关阅读:
    IPv6 tutorial – Part 8: Special addresses
    IPv6 tutorial – Part 7: Zone ID and unique local IPv6 unicast addresses
    ipconfig命令
    netsh命令
    Android-用你自己的自定义图像资源(2)
    Android 按下电源按钮关闭小学习过程的整个长度
    将android界面背景设置为黑色
    capturing self strongly in this block is likely to lead to a retain cycle
    Hadoop-2.2.0中国文献—— Web应用代理
    使用live delegate on解决js后装html故障问题
  • 原文地址:https://www.cnblogs.com/zoe233/p/6999441.html
Copyright © 2011-2022 走看看