zoukankan      html  css  js  c++  java
  • 神奇的位操作

    基本知识:

    & 位与操作

    |  位或操作

    ^ 按位异或操作

    ~ 位非操作

    计算机中数字有原码,反码,补码三种存储格式,通常都是补码形式;

    一个正数的原码,反码和补码相同;一个负数,符号位为1,其余各位对原码按位取反,然后加1;

    技巧总结:

    1、n & (n - 1)可以去掉n位表示中的最后一个1,利用这个可以统计一个数的二进制表示中1的个数;

    2、每个数乘以2,就相当于向左移动一位。所以2的n次幂就是1向左移动n位;

    3、异或操作

    a ^ b ^ b = a ^ (b ^ b) = a ^ 0 = a;

    a ^ b = b ^ a;

    4、已知负数补码,求该十进制负数。假设补码用N表示,则十进制数位(~N)+1;

    不要让执行的勤奋掩盖思考的懒惰!
  • 相关阅读:
    FreePascal
    Delphi
    FreePascal
    FreePascal
    Linux
    FreePascal
    FreePascal
    CodeTyphon
    IDEA
    工作流科普——don't ask i don't know either
  • 原文地址:https://www.cnblogs.com/zhiyangjava/p/6512601.html
Copyright © 2011-2022 走看看