您现在的位置是:主页 > news > 国外最大的素材网站/关键词搜索排名怎么查看

国外最大的素材网站/关键词搜索排名怎么查看

admin2025/5/5 1:49:43news

简介国外最大的素材网站,关键词搜索排名怎么查看,潍坊建网站,网站营销优化文章目录1、位运算概述2、位运算运算符3、(&)与运算操作4、常用操作1、位运算概述 1001 1011 最右边是最低位,最左边是最高位 计算机中所有的数据都是以二进制来存储的,即0、1两种状态 int a 17; int b 18; int c a b; …

国外最大的素材网站,关键词搜索排名怎么查看,潍坊建网站,网站营销优化文章目录1、位运算概述2、位运算运算符3、(&)与运算操作4、常用操作1、位运算概述 1001 1011 最右边是最低位,最左边是最高位 计算机中所有的数据都是以二进制来存储的,即0、1两种状态 int a 17; int b 18; int c a b; …

文章目录

        • 1、位运算概述
        • 2、位运算运算符
        • 3、(&)与运算操作
        • 4、常用操作

1、位运算概述

1001 1011
最右边是最低位,最左边是最高位

计算机中所有的数据都是以二进制来存储的,即0、1两种状态

int a = 17;
int b = 18;
int c = a + b;

计算机先在机器内部将数字转换为二进制再计算

17:1 0 0 0 1
18:1 0 0 1 0

35:1 0 0 0 1 1


2、位运算运算符

运算符含义描述
<<各二进位全部左移若干位,高位丢弃,低位补0左移
>>各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)右移
&两个位都为1时,结果才为1
|两个位都为0时,结果才为0
~0变1,1变0取反
^两个位相同为0,相异为1异或

举例:
1、(&)与运算符

  • 0&0=0
  • 0&1=0
  • 1&0=0
  • 1&1=1

2、(|)或运算符

  • 0|0=0
  • 0|1=1
  • 1|0=1
  • 1|1=1

3、(^)异或运算符

  • 0^0=0
  • 0^1=1
  • 1^0=1
  • 1^1=0

4、(~)取反运算符

  • ~1=0
  • ~0=1

5、(<<)左移运算符

a=1010 1101,a<<2是将a的二进制位全部左移二位、右补0,得结果1011 0100

6、(>>)右移运算符

a=1010 1101,a>>2是将a的二进制位全部右移二位、左补0,得结果0010 1011

7、求和

  • 1+1=0
  • 1+0=1
  • 0+0=0

3、(&)与运算操作

1、清零
若想将一个单元清零(全部二进制位为0),只需要与一个所有位都为0的数相与(&)

a:1010 1011
b:0000 0000
a&b:0000 0000

2、取一个数的指定位

取1011 1010的最后四位,令一个数的最后四位为1,其余位为0

1011 1010 & 0000 1111 = 0000 1010

3、判断奇偶

一个数若为奇数,则它的二进制数末位1,偶数为0

if(a&1) cout<<"奇数";
else cout<<"偶数";

4、常用操作

1、求一个数的二进制数的第k位
10的二进制为1010,1为第三位,0为第二位,1为第一位,0为第0位

#include<bits/stdc++.h>
using namespace std;
int main()
{int n=10;for(int k=3;k>=0;k--) cout<<(n>>k & 1);return 0; //输出结果为1010 
}

2、lowbit(n)计算二进制位中最低位1出现的位置

一个整数的负数是原数的补码,补码是对原数取反加1,即-n=~n+1
x&-x 与 x&(~x+1) 是等效的

举例说明为什么x&-x可以计算最低位1的位置:
n:1010 1000
~n: 0101 0111
~n+1:0101 1000
n&(~n+1):0000 1000

10(1010),lowbit(10)=2
20(10100),lowbit(20)=4

int lowbit(int n)
{return n&(-n);
}

例题:

801. 二进制中1的个数

给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。

输入格式
第一行包含整数n。

第二行包含n个整数,表示整个数列。

输出格式
共一行,包含n个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中1的个数。

数据范围
1≤n≤100000,
0≤数列中元素的值≤109

输入样例:
5
1 2 3 4 5

输出样例:
1 1 2 1 2

#include<bits/stdc++.h>
using namespace std;int lowbit(int x)
{return x&(-x);
}
int main()
{int n;cin>>n;while(n--){int x;cin>>x;int res=0;while(x) x-=lowbit(x),res++;//每次减去x的最后一位1cout<<res<<" "; }return 0;
}

借鉴:https://www.cnblogs.com/yrjns/p/11246163.html

今天是四年一遇的0229嘛🎀