• 二进制


    1.概念

    进制:进位计数制

    为什么用二进制

    1. 效率高
    2. 硬件实现简单
    3. 发展快,新计数发展不排除重新发展三进制。

    2.进制转换

    进制的基与权

    基:基数,进制的位数,数码的个数
    权:位权,每一位的固定权值大小。

    二进制转十进制

    1 1 0 1 基
    8 4 2 1 权

    • 基乘权相加
    • 1101 = 11+02+14+18=13

    十进制转二进制(除二逆序取余)

    二进制转八进制

    从右往左取3位,算出十进制值。链接起
    1101=13

    二进制转十六进制

    从右往左取4位,算出十进制值。链接起
    1101=D

    3二进制的四则运算

    156(+-*/)21=?         10011100            10101
    10011100  
     + 10101
    10110001
    156+21=177      10110001
    10011100  
     - 10101
    10000111
    156-21=135      10000111
        10011100  
        *  10101
        10011100
      10011100
    10011100
    110011001100
    156*21=3276      110011001100
               111
    10101|10011100
           10101
           100100
            10101
            011110
             10101
             01001
    156÷21=7...9         111...1001 
    

    4.原码反码和补码

    为什么要有反码? 为了解决原码做减法的问题
    为什么要有补码? 为了解决0有两个编码的问题,多出的一个编码用与多表示一个最低位

    原码:是对自然正数(包括0)的二进制编码,正数在计算机中直接用原码进行存储。
    反码:可以理解为是求补码的中间过程,反码=原码逐位取反。计算机并不存储反码。
    补码:计算机求相反数的编码,补码=反码+1。负数在计算机中使用补码进行存储。
    计算机通过补码进行减法运算和位运算

    正数的源码=反码=补码
    负数的源码反码和补码:

    1. 源码:符号位+真值
    2. 反码:符号位不变,其余数取反。
    3. 补码:反码+1

    eg:

    -36+38
    -36原码=10100100
    -36反码=11011011
    
    -36补码=11011100
           +
     38原码=00100110
       结果=1 00000010->2
      =1 00110110   00110101  11001010
    
    -31-22=-31+(-22)
    -31原码=10011111
    -22原码=10010110
     
    -31反码=11100000
    -22反码=11101001
     
    -31补码=11100001
            +
    -22补码=11101010 
               //补码转回反码转换原码转换十进制
       结果=1 11001011->11001010->10110101=-53
    

    运算符

    • 或:| :一个为1则为1,两个为0才为0
    • 与:& 同时为1才为1,一个为0则为0
    • 非:~ 按位取反
    • 异或:^ 相同为1,不同为0
    • 带符号右移:>>正数补0负数补1。其值相当于除以2。-4>>=-2 1100->1110->1101->1010->-2;4>>=2 0100->0010->2
    • 无符号右移:>>>-4>>>=130;10000100>>>010000010=130
    • 有符号左移:>> 右边空出的位置补0,其值相当于乘以2。-4<<=-8;(-4原码)10000100->(-4反码,符号不变取反)11111011->(-4补码,反码+1)11111100->(-4补码向左移一位,右边补0)11111000->(转回反码-1)11110111->(转回原码)10001000=-8
  • 相关阅读:
    webpack 多页面支持 & 公共组件单独打包
    svn版本控制方案:多分支并行开发,多环境自动部署
    前端模块系统的演进
    gitignore 不起作用的解决办法
    js 中文长字符截短&关键字符隐藏 自定义过滤器
    UNION和UNION ALL
    @getMapping和@postMapping,@RestController
    java加密
    枚举浅谈
    NPE是什么
  • 原文地址:https://www.cnblogs.com/chahune/p/16355149.html
Copyright © 2020-2023  润新知