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

  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/itzhangxp/p/5016112.html
Copyright © 2011-2022 走看看