美文网首页
二进制知识

二进制知识

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2020-11-22 14:10 被阅读0次

    1. Byte与Bit的关系

    • bit:Binary digit(二进制数位)的缩写,意为“位”或“比特”,是计算机运算的基础;计算机中的最小存储单元,存储内容总是0或1,所有二进制状态的实体都可以使用1bit表示,不能够单独寻址。
    • byte: 意为“字节”,是计算机文件大小的基本计算单位; 1byte=8bits ,可以存储所有ASCII所有字符(这是它包含8bits的初衷),十进制整数范围[-128,127]或[0, 255],是最小的可寻址存储单元
    • 关系: 1Byte=8bit (简写: 1B=8b)
    1TB=1024GB      TB是千千兆 
    1GB=1024MB      GB是千兆 
    1MB=1024KB      MB是兆  
    1KB=1024Byte    KB是千字节 
    
    注意:Byte的缩写是B也就是字节
    

    2. 二进制

    二进制是计算技术中广泛采用的一种数制。二进制数据据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
    2.1 二进制的基本运算(只介绍常用的加、乘法)

    • 加法:
     0 + 0 = 0
     0 + 1 = 1
     1 + 0 = 1
     1 + 1 = 10
    

    例如:


    image.png
    • 乘法:
    0×0=0
    1×0=0
    0×1=0
    1×1=1
    

    2.2 二进制、十进制、十六进制的转化

    • 十进制转二进制
      以十进制50为例,按短除法:
    50 / 2 =25 余0
    25 / 2 = 12 余1
    12 / 2 =6 余0
    6 / 2 =3 余0
    3 / 2 =1 余1
    1 / 2 = 0 余1
    结果就是余数从下往上写 即110010
    
    • 二进制转十进制
      以二进制10010为例,按权运算:
      0 × 20 + 1 × 21 + 0 × 22 + 0 × 23 + 1 × 24 = 18

    2.3 原码、反码、补码
    机器数就是8位二进制,第一位代表的符号位。
    机器数带符号:正数最高位为0,负数最高位为1

    • 原码:符号位加上真值的绝对值
    • 反码:正数的反码是其本身,负数的反码就是在其原码的基础上,符号位不变,其余各位取反
    • 补码:正数的补码就是其本身,负数的补码就是在原码的基础上,符号位不变,其余各位取反,最后 +1。即,在反码的基础上加1。补码转原码,符号位不变,其余各位取反加一。

    2.4 二进制位运算

    • 1.<<(向左位移)
      运算规则:a<<b,表示a转为二进制后左移b位,左移后,空位补0。
      例:
      3:      00000000 00000000 00000000 00000011
         // 左移2位,空位补2个0
      3<<2: 00000000 00000000 00000000 00001100
      
      所以,3<<2 = 12
      规律:a左移b位,就是a乘以2的b次方。
    • 2.>>(向右位移)
      运算规则:a>>b,表示a转为二进制后右移b位,右移后,最高位是0,则空缺位补0;最高位是1,则空缺位补1。
      例:
      4:      00000000 00000000 00000000 00000100
           // 右移1位。右移后,最高位是0,则空缺位补0;最高位是1,则空缺位补1
      4>>1:   00000000 00000000 00000000 00000010
      
      所以,4 >> 1 = 2
      规律:a右移b位,就是a除以2的b次方。
    • 3.&(与运算)
      运算规则:相同位的两个数字都为1,则为1;若有一个不为1,则为0。
      例:
      5:    00000000 00000000 00000000 00000101
      6:    00000000 00000000 00000000 00000110
      5&6:  00000000 00000000 00000000 00000100   
      
      所以,5&6 = 4
    • 4.|(或运算)
      运算规则:相同位只要有一个为1即为1。
      例:
      5:    00000000 00000000 00000000 00000101
      6:    00000000 00000000 00000000 00000110
      5|6:  00000000 00000000 00000000 00000111  
      
      所以,5|6 = 7
    • 5.^(异或运算)
      运算规则:针对二进制位,如果某位不同则该位为1, 否则该位为0。
      例:
      5:    00000000 00000000 00000000 00000101
      6:    00000000 00000000 00000000 00000110
      5^6:  00000000 00000000 00000000 00000011 
      
      所以,5^6 = 3
    • 6.~(取反运算)
      运算规则:对二进制各位数进行取反,即1变成0,0变成1。
      例:
      5:    00000000 00000000 00000000 00000101
      ~5:   11111111 11111111 11111111 11111010 // 补码形式
             11111111 11111111 11111111 11111001 // 反码
             10000000 00000000 00000000 00000110 // 原码
      
      所以,~5 = -6

    相关文章

      网友评论

          本文标题:二进制知识

          本文链接:https://www.haomeiwen.com/subject/tzfzbktx.html