首页 > 其他分享 >位运算

位运算

时间:2023-02-27 22:58:20浏览次数:39  
标签:return 运算 int sum while vector numbers

1.2 的幂

bool isPowerOfTwo(int n) {
        int sum=0;
        while(n){
            if(n&1)sum++;
            if(sum>1)return false;
            n>>=1;
        }
        if(sum!=0)return true;
        return false;
    }

  

2.4的幂

bool isPowerOfFour(int n) {
        return (n>0)&&((n&(n-1))==0)&&n%3==1;
    }

  

3.位1的个数

int hammingWeight(uint32_t n) {
        int sum=0;
        while(n){
            if(n&1)sum++;
            n>>=1;
        }
        return sum;
    }

  

4.交换数字

vector<int> swapNumbers(vector<int>& numbers) {
        numbers[0]^=numbers[1];
        numbers[1]^=numbers[0];
        numbers[0]^=numbers[1];
        return numbers;
    }

  

5.只出现一次的数字

int singleNumber(vector<int>& nums) {
        int sum=0;
        for(int i=0;i<nums.size();i++){
            sum^=nums[i];
        }
        return sum;
    }

  

6.汉明距离

int hammingDistance(int x, int y) {
        int p=x^y,sum=0;
        while(p){
            if(p&1)sum++;
            p>>=1;
        }
        return sum;
    }

  

7.交替位二进制数

while(n){
            if((n&3)==3||(n&3)==0)return false;
            n>>=1;
        }
        return true;

  

8.找出所有子集的异或总和再求和

int subsetXORSum(vector<int>& nums) {
        int psum=0;
        int ans;
        for(int i=0;i<(1<<(nums.size()));i++){
            ans=0;
            for(int j=0;j<nums.size();j++){
                if(i&(1<<j)){
                    ans^=nums[j];
                }
            }
            psum+=ans;
        }
        return psum;
    }

 

9.两整数之和

int getSum(int a, int b) {
        return b==0?a:getSum(a^b,(unsigned long long)(a&b)<<1);
    }

  

10.插入

int insertBits(int N, int M, int i, int j) {
        for(int k=i;k<=j;k++){
            N&=~((long long)1<<k);
        }
        return N|(M<<i);
    }

  

  

标签:return,运算,int,sum,while,vector,numbers
From: https://www.cnblogs.com/zhanghx-blogs/p/17162262.html

相关文章

  • 运算符
    算术运算符:......
  • javascript的void运算符
    1<!DOCTYPEhtml>2<htmllang="en">34<head>5<metacharset="UTF-8">6<metahttp-equiv="X-UA-Compatible"content="IE=edge">7......
  • 03 逻辑运算符.
    #一:not、and、or的基本使用#not:就是把紧跟其后的那个条件结果取反#ps:not与紧跟其后的那个条件是一个不可分割的整体#print(not16>13)#print(notTrue)#print(not......
  • Python变量与运算符一
    一、Python保留字符(33个)被编程语言内部定义并保留使用的标识符:and,as,assert,break,class,continue,def,del,elif,else,expect,finally,for,from,False,global,if,is,im......
  • 三元运算符
    三元运算符代码示例publicclassoperator{publicstaticvoidmain(String[]args){//x?y:z//如果x=true,则结果为y,否则结果为zintscore......
  • JavaScript 相等运算符
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *相等运算符用来比较两个值是否相等, ......
  • JavaScript 条件运算符
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *条件运算符也叫三元运算符 * 语法: ......
  • JavaScript 运算符的优先级
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *,运算符 * 使用,可以分割多个语......
  • JavaScript 赋值运算符
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *= * 可以将符号右侧的值赋值给符号左......
  • JavaScript 关系运算符
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *通过关系运算符可以比较两个值之间的......