zoukankan      html  css  js  c++  java
  • 位运算学习笔记

    1、二进制最高位是符号位(0代表正数,1代表负数)
    2、正数的原码、反码、补码都相同
    3、负数的反码是将原码符号位不变,其他位取反。
    4、负数的补码是将反码+1
    5、0的原码、补码都是0
    6、计算机中是依据补码进行计算的。

    7、练习:
    1)、~2=?
    例题说明:对2按位取反。由于2为正数,正数的原码、补码相等。所以只需要将补码按位取反。
    补码:00000000 00000000 00000000 00000010
    取反:11111111 11111111 11111111 11111101

    由于取反后的结果为补码,所以还需要根据结果计算出结果的原码。
    原码:10000000 00000000 00000000 00000011

    故~2 = -3;

    2)、2&3 = ?
    例题说明:分别对2和3按位与,由于2和3 都是正数,正数的原码、补码相等,所以两个数与(两位全为1,结果为1)的结果是:
    2:00000000 00000000 00000000 00000010
    3:00000000 00000000 00000000 00000011
    ?:00000000 00000000 00000000 00000010

    由于与后的结果为补码,所以还需要根据结果计算出结果的原码。根据符号位可以判断结果为正数,所以原码=补码。
    故2&3 = 2

    3)、-3^3 = ?
    例题说明:将-3和3按位异或(两位不同结果为1,否则为0)。
    -3的补码:11111111 11111111 11111111 11111101
    3的补码: 00000000 00000000 00000000 00000011
    ?的补码:11111111 11111111 11111111 11111110

    结果的原码为:10000000 00000000 00000000 00000010

    故-3^3 = -2

    4)、4|5 = ?
    例题说明:将4和5按位或(有1则为1,全0为0)
    4的补码:00000000 00000000 00000000 00000100
    5的补码:00000000 00000000 00000000 00000101
    ?的补码:00000000 00000000 00000000 00000101

    故4|5 = 5

  • 相关阅读:
    read、readline、readlines和linecache的使用
    无法启用internet连接共享,为LAN连接配置的IP地址需要使用自动IP寻址
    虚拟机pycharm
    Ubuntu安装谷歌浏览器
    pandas dataframe重复数据查看.判断.去重
    git 删除误上传的.idea文件
    python logger日志通用配置文件
    pyinstaller打包python文件成exe(原理.安装.问题)
    SSH 免密登录服务器
    homebrew安装和解决brew安装速度慢的问题
  • 原文地址:https://www.cnblogs.com/itzhangxp/p/5016112.html
Copyright © 2011-2022 走看看