zoukankan      html  css  js  c++  java
  • 二进制位运算

    1. 二进制的最高位是符号位,php中的数都是有符号的,正数是0负数是1;整数都是4个字节,1个字节有8位
    2. 正数的原码、反码、补码都一样,0的反码、补码都是0
    3. 负数的反码:符号位不变,其它位全部取反
    4. 负数的补码:负数的反码+1
    5. 在计算机运算的时候,都是以补码的方式来运算的

    题目1:    ~2=?

    2的原码:00000000 00000000 00000000 00000010   正数的原码、补码、反码一样

    ~$a ,按位取反 ,将 $a 中为 0 的位设为 1,反之亦然。

    解题思路:1.首先找出2的补码

    2.全部取反后的补码:11111111 11111111 11111111 11111101

    3.取反后的反码:11111111 11111111 11111111 11111100

    4.取反后的原码:10000000 00000000 00000000 00000011

    5.计算后的数字结果:-3

    题目2:      2&3 =?

    $a&$b 将把 $a 和 $b 中都为 1 的位设为 1。

    解题:

    1.2的补码:00000000 00000000 00000000 00000010

       3的补码:00000000 00000000 00000000 00000011

    2.都为1的设置为1之后补码为 : 00000000 00000000 00000000 00000010

    3.反码为不变

    4.原码为不变

    5.计算数值为:2

    题目3: -3>>2 = ?

    向任何方向移出去的位都被丢弃。左移时右侧以零填充,符号位被移走意味着正负号不被保留。右移时左侧以符号位填充,意味着正负号被保留。

    解题:

    -3的原码: 10000000 00000000 00000000 00000011

    -3的反码: 11111111 11111111 11111111 11111100

    -3的补码: 11111111 11111111 11111111 11111101

    补码右移两位后的补码:11111111 11111111 11111111 11111111

    补码->反码:11111111 11111111 11111111 1111110

    反码->原码:10000000 00000000 00000000 00000001

    数值结果:-1

    ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
  • 相关阅读:
    CDH环境搭建及部署
    Window 安装Sqoop 环境
    软件——keil的查找,错误,不能跳转到相应的行
    软件——机器学习与Python,输入输出的用法
    软件——机器学习与Python,聚类,K——means
    软件——机器学习与Python,if __name__ == '__main__':函数
    硬件——STM32,ADC篇
    生活的开始
    硬件——nrf51822第三篇,按键控制小灯
    硬件——nrf51822第二篇,如何设置keil用来下载程序
  • 原文地址:https://www.cnblogs.com/bafeiyu/p/10278430.html
Copyright © 2011-2022 走看看