• 进制转换的知识


     计算机组成原理目录

    进制学习

    原文链接:https://www.cnblogs.com/ds-3579/p/5246142.html

    进制转换的内容,即十进制,二进制,八进制,十六进制之间的相互转换。

    一、基础内容

    十进制:有十个基数 0,1,2,3,4,5,6,7,8,9 

    二进制:逢二进一,借一为二。

               基数为0,1

    八进制:逢八进一,借一为八。

               基数为0,1,2,3,4,5,6,7

    十六进制:逢十六进一,借一为十六。

               基数为0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)

    二、转换方法

    1、十进制与其他进制(二、八、十六)

    十进制→ 二进制:十进制数除以二,除至0后,所得余数按照反方向写出即可。(如图所示)

     

    十进制→ 八进制:十进制数逐次整除八,直至商为0,所得余数按照反方向写出即可。

    (同理,把上图中2换成8计算即可)

    十进制→ 十六进制:十进制数逐次整除十六,直至商为0,所得余数按照反方向写出即可,但要注意10及其以上的数字用字母A-F表示。

    (同理,把上图中2换成16计算即可)

    2、其他进制(二、八、十六)与十进制

    注意:a---m方向为从右到左

    二进制→十进制:a×20+b×21+c×22+d×23+…….+m×2(n-1)

    例如:将二进制的(101011)转换为十进制的步骤如下:

    1. 第0位 1 x 2^0 = 1;

    2. 第1位 1 x 2^1 = 2;

    3. 第2位 0 x 2^2 = 0;

    4. 第3位 1 x 2^3 = 8;

    5. 第4位 0 x 2^4 = 0;

    6. 第5位 1 x 2^5 = 32;

    7. 读数,把结果值相加,1+2+0+8+0+32=43

    二进制位数(从右到左)

    第一位

    第二位

    第三位

    第四位

    第五位

    第六位

    第七位

    第八位

    对应的2的次方

    2^0

    2^1

    2^2

    2^3

    2^4

    2^5

    2^6

    2^7

    对应结果

    1

    2

    4

    8

    16

    32

    64

    128

    八进制→十进制:a×80+b×81+c×82+d×83+…….+m×8(n-1)

    例如:将八进制的(53)转换为十进制的步骤如下:

    1. 第0位 3 x 8^0 = 3;

    2. 第1位 5 x 8^1 = 40;

    3. 读数,把结果值相加,3+40=43(8)

    八进制位数(从右到左)

    第一位

    第二位

    第三位

    第四位

    第五位

    第六位

    第七位

    第八位

    对应的8的次方

    8^0

    8^1

    8^2

    8^3

    8^4

    8^5

    8^6

    8^7

    对应结果

    1

    8

    64

    512

    4096

    32768

    262144

    2097152

    十六进制→十进制:a×160+b×161+c×162+d×163+…….+m×16(n-1)

    例:将十六进制的(2B)转换为十进制的步骤如下:

    1. 第0位 B x 16^0 = 11;

    2. 第1位 2 x 16^1 = 32;

    3. 读数,把结果值相加,11+32=43(16)

    十六进制位数(从右到左)

    第一位

    第二位

    第三位

    第四位

    对应的16的次方

    16^0

    16^1

    16^2

    16^3

    对应结果

    1

    16

    256

    4096

    3、其他进制之间的转换

    二进制→八进制:对于整数,采用从右到左每三位一组,不够三位的在其左边补齐0,每组单独转换出来即可。

    例如:转换二进制数 1110101010100 那么分组为
    001 110 101 010 100 按照转换方法对应转换
      1    6    5    2    4
    所以 1110101010100(2) = 16524(8)

    八进制→二进制:将每位八进制由三位二进制数代替即可。

    二进制与八进制编码对应表:

    二进制

    八进制

    000

    0

    001

    1

    010

    2

    011

    3

    100

    4

    101

    5

    110

    6

    111

    7

    二进制→十六进制:此时分组为从右到左每 4 位二进制数为一组进行转换

    例如:转换二进制 0101010100101011010,分组:
    0010 1010 1001 0101 1010
       2     A      9      5      A
    所以0101010100101011010(2) = 2A95A(16)

    十六进制→二进制:将每位十六进制由四位二进制数代替即可。

    二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制,反之亦然。

    首先我们来看一个二进制数:1111,它是多少呢?

    你可能还要这样计算:1 * 2 + 1 * 2 + 1 * 2 + 1 * 2 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。

    然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为2^3 = 8,然后依次是 2^2 = 4,2^1=2, 2^0 = 1。

    记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。

    仅四位的二进制数

    快速计算方法

    十进制值

    十六进制值

    1111

    8+4+2+1

    15

    F

    1110

    8+4+2+0

    14

    E

    1101

    8+4+0+1

    13

    D

    1100

    8+4+0+0

    12

    C

    1011

    8+0+2+1

    11

    B

    1010

    8+0+2+0

    10

    A

    1001

    8+0+0+1

    9

    9

    ……

    0001

    0+0+0+1

    1

    1

    0000

    0+0+0+0

    0

    0

    4、下面是二、八、十、十六进制之间关系的结构图:

    5、几个进制之间的对应关系:

  • 相关阅读:
    485串口接线
    mvc3 升级mvc5
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6 读写西门子PLC
    可用的 .net core 支持 RSA 私钥加密工具类
    解决 Win7 远程桌面 已停止工作的问题
    解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
    解决安装 .net framework 发生 extracting files error 问题
    CentOS7 安装配置笔记
    通过特殊处理 Resize 事件解决 WinForm 加载时闪烁问题的一个方法
  • 原文地址:https://www.cnblogs.com/machangwei-8/p/10669374.html
Copyright © 2020-2023  润新知