计算机基础 二进制、八进制、十六进制转换

计算机基础 二进制、八进制、十六进制转换

1.二进制:

我们都知道计算机中所有的信息最终都是以二进制0和1表示,而有些算法是通过操作bit位进行运算

举个栗子:

  • 比如一个视频,如果仅让计算机以0和1这两种状态来表达这些数据,那是心有余而力不足。那么怎么办呢?这时候国际标准化就决定了,用8个这样的状态来表示一个数据

也就是说:

  • 一个数据 = 01010101(8个状态)

  • 这样的由8个状态组成的数据就叫字节

    1byte(字节) = 8bit(位,状态)
    
    1kb = 1024  byte
    
    1mb = 1024 kb
    
    1g = 1024 mb
    
    1tb = 1024 g
    

2.二进制转换十进制:

  • 进位规则是'逢二进一',借位规则是'借一当二'

  • 把对应的数加起来就可以了

  • 举个栗子:

    1.下面是一个二进制数:
    计算机基础 二进制、八进制、十六进制转换_第1张图片
    ​ 2.每个进制位的角标,因为计算机角标从0开始算起:
    计算机基础 二进制、八进制、十六进制转换_第2张图片
    ​ 3.计算每个进制的值,用二进制的每一位乘以基数的角标次方:
    计算机基础 二进制、八进制、十六进制转换_第3张图片
    ​ 4.计算出每一位的值:
    计算机基础 二进制、八进制、十六进制转换_第4张图片
    ​ 5.将它们相加即可:
    计算机基础 二进制、八进制、十六进制转换_第5张图片

  • 可以使用bin()函数进行转换:

    In [1]: bin(45)
    Out[1]: '0b101101'
    

3.二进制转换八进制:

  • 我们知道一个字节需要8个二进制表示,有点长,那么用八进制来表示的话就会短一些。

    1.比如下面有一个字节:

    0101101
    

    如果想把它变成八进制的话,那就从右到左,每三位当作一个,左边的不够就补0,也就是下面这样:

    000101101
    

    2.把每三位的整体转换成十进制的数,就变成了八进制。

    000 = 0
    101 = 4 + 1 = 5
    101 = 4 + 1 = 5
    

    3.所以二进制0b000101101 = 八进制0055。

4.二进制转换十六进制:

  • 同理,十六进制可以用更少的数来表示,如果想把0101101变成十六进制的话,那就从右到左,每四位当做一个,最左边的不够就补0

    0010 1101
    0010 = 2
    1101 = 8 + 4 + 0 + 1 = 13   13=D
    所以输出结果: 0X2D
    

5.不同的进制表达方式:

二进制是由[0,1 ]组成,通常以0b或-0b开头

八进制是由[0, 1, 2, 3, 4, 5, 6, 7]组成,通常以0开头

十进制是由[0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]组成

十六进制是由[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f]组成,以0X开头

6.总结:

  • bin() 转换成 二进制
  • int() 转换成 十进制
  • hex() 转换成 十六进制
  • oct() 转换成 八进制

你可能感兴趣的:(计算机基础)