美文网首页
计算机底层知识-二进制

计算机底层知识-二进制

作者: 麦大大吃不胖 | 来源:发表于2020-11-25 18:53 被阅读0次

    by shihang.mai

    10进制是逢10进1,2进制便是逢2进1

    1. 二进制和十进制转换

    1.1 正数

    二进制的每一位=10进制的2^位的值。
    例如
    2进制: 0 0 1 0 0 1 0 0
    10进制: 2^2 + 2^5 = 36

    1.2 负数

    最高位为1,用其余的数去表示实际的数

    2进制: 1 1 0 1 1 1 0 0
    10进制: 符号位不变,然后~(2进制) + 1 = -36

    2. 源码、反码、补码

    源码:0 0 1 0 0 1 0 0
    反码:1 1 0 1 1 0 1 1(1->0 0->1)
    补码:1 1 0 1 1 1 0 0(反码基础上+1)
    

    2.1 负数用补码的好处

    就是为了用一个代码逻辑去做运算,而不用if else那么多逻辑表示

    3. 二进制的逻辑运算

    运算符 描述 举例
    &(与) 遇0则0 1 & 1 = 1
    1 & 0 = 0
    0 & 0 = 0
    |(或) 遇1则1 1 | 1 = 1
    1 | 0=1
    0 | 0 = 0
    ~(取反) 取反 ~ 1 = 0
    ~ 0 = 1
    ^(异或) 不进的2进制 1 ^ 1=0
    1 ^ 0=1
    0 ^ 0=0
    >>(右移) 右移动,补符号位(原最高位是什么补什么),移多少位都补同一个数字 >>00100100将最右边的0向右移,符号位0=00010010
    >>11011100将最右边的0向右移,符号位补1=11101110
    <<(左移) 左移动,永远补0 <<00100100将最左边的0左移,末尾补0=01001000
    >>>(无符号右移) 右移动,补符号位永远补0 >>>00100100将最右边的0向右移,符号位0=00010010

    3.1 异或作用举例

    首先需要知道异或性质

    1. 0 ^ N = N
    2. N ^ N = 0
    3. 异或与数字顺序无关

    例如下面有这么一道题:
    a=3 b=4 如何交换? 预期结果 a=4 b=3

    a=a^b
    b=a^b
    a=a^b
    
    a b交换.png

    4. 计算机进制

    • 1bit =1位
    • 8bit = 1Byte
    • 1KB =1024Byte
    • 1MB =1024KB
    • 1GB =1024MB

    相关文章

      网友评论

          本文标题:计算机底层知识-二进制

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