zoukankan      html  css  js  c++  java
  • 位运算优化

     写在前面:

      整理出来的一些能显著提高性能的位运算优化方法

    C++

    (类似)x=x*10

    x=(x<<1)+(x<<3)

    x/=2

    x>>=1

    x%2==1

    x&1

    x%2==0

    !(x&1)

    (long long)int a,b,c;  c=a;a=b;b=c;

    (long long)int a,b;  a^=b;b^=a;a^=b

    x*=2n

    x<<=n

    x/=2n

    x>>=n

    int a;  if(a<0) a=-a;

    int a;  a=(a^(a>>31))-(a>>31); 

    long long int a;  if(a<0) a=-a;

    long long int a;  a=(a^(a>>63))-(a>>63); 

    (取得int的最大值)

    (1<<31)-1

    (取得long long int的最大值)

    (1<<63)-1

    (取得int的最小值)

    1<<31

    (取得long long int的最小值)

    1<<63

    (long long)int a,b;  (a+b)/2;

    (long long)int a,b;  ((a^b)>>1)+(a&b);

    Java

    (类似)x=x*10

    x=(x<<1)+(x<<3)

    x/=2

    x>>=1

    (long long)int a,b,c;  c=a;a=b;b=c;

    (long long)int a,b;  a^=b;b^=a;a^=b

    x*=2n

    x<<=n

    x/=2n

    x>>=n

    int a;  if(a<0) a=-a;

    int a;  a=(a^(a>>31))-(a>>31); 

    long long int a;  if(a<0) a=-a;

    long long int a;  a=(a^(a>>63))-(a>>63); 

    (取得int的最大值)

    (1<<31)-1

    (取得long long int的最大值)

    (1<<63)-1

    (取得int的最小值)

    1<<31

    (取得long long int的最小值)

    1<<63

    (long long)int a,b;  (a+b)/2;

    (long long)int a,b;  ((a^b)>>1)+(a&b);

    (需要注意的是,Java的一大特点是取消了程序员直接操作指针)

  • 相关阅读:
    MFC绘制直角坐标系
    mfc画波形函数
    ciscn_2019_ne_5
    ciscn_2019_n_5
    [ZJCTF 2019]NiZhuanSiWei
    ciscn_2019_n_1
    pwn-100
    2014提高组笔试错题
    BZOJ3211: 花神游历各国
    主席树模板
  • 原文地址:https://www.cnblogs.com/Antigonae/p/10147058.html
Copyright © 2011-2022 走看看