当前位置:网站首页>Bit operation skills
Bit operation skills
2022-07-05 04:06:00 【Phyllostachys pubescens】
-------------------------
Judge odd and even numbers
1110 1111
0001 0001
0000 0001 // if((a&1)==0){}
-------------------------
Exchange two numbers
1001 a
1010 b
0011 a=a^b
1010 b
1001 b=a^b
0011
1001
1010 a=a^b
----------------------------
Multiplication and division
100>>1 10 // 4->2
100<<1 1000 //4->8
--------------------------------
Exchange symbols
0 1000 Take the opposite
1 0111 +1
1 1000
---------------------------------
High low swap a=(a<<4)|(a>>4)
1100 1011
a>>4
0000 1100
a>>4
1011 0000
Take or
1011 1100
------------------------
Statistics 1 The number of
1011 a&(a-1)
1010
1010
1001 a&(a-1)
1000
One less for each execution 1
-----------------------------
-----------------------------
Binary addition 5+3
0101 0101
0011 0011
^ 0110 0001 <<1 0010
public int add(int a, int b){
int a=a^b;
int b=a&b;
b<<1;
if(b==0) return 0;
else{
return Add(a,b);
}
}
----------------------------------
Only once , Other numbers appear 2 Time
1101
0000
1101
0 And any number ^ For itself
1101
1101
0000
Two identical numbers ^ The result is 0
Method : use 0 And each value in the array ^ operation , The result of the operation is the number that occurs once
---------------------------------------------------------------
Only once , Other numbers appear 3 Time
In the specific operation implementation , The data in the array is given in the problem int Within limits ,
So we can implement int Of 32 Each bit is judged in turn 1 The remainder of the number of 3 Is it 1,
If 1 The result shows that the bit is 1 You can add the results . The final value is the answer 、
class Solution {
public int singleNumber(int[] nums) {
int value=0;
for(int i=0;i<32;i++)
{
int sum=0;
for(int num:nums)
{
if(((num>>i)&1)==1)
{
sum++;
}
}
if(sum%3==1)
value+=(1<<i);
}
return value;
}
}
// Bit operation to achieve multiplication and division
int a=2;
a>>1; // Move right 1 position , It's equivalent to dividing 2 , The result is 1
a<<1; // Move left 1 position , It's equivalent to riding 2 , The result is 4
// Bit operations swap two numbers , No need for temporary variables , Efficiency is higher than ordinary operation
void Swap(int &a, int &b){
a=a+b;
b=a-b;
a=a-b;
}
void swap(int &a,int &b){
a=(a^b);
b=(b^a);
a=(a^b);
}
// Judge odd and even numbers
if(0==(a&1){
// even numbers
}
// Bit operation exchange symbol
int reversal(int a){
return ~a +1;
}
// Bit operation to find the absolute value
int abs(int a){
int i=a>>31;
return i==0?a:(~a+1);
}
// Bit operation for high and low bit switching
unsigned short a=34520;
a=(a>>8)|(a<<8)
// Bit operation in binary reverse order
unsigned short a = 34520;
a = ((a & 0xAAAA) >> 1) | ((a & 0x5555) << 1);
a = ((a & 0xCCCC) >> 2) | ((a & 0x3333) << 2);
a = ((a & 0xF0F0) >> 4) | ((a & 0x0F0F) << 4);
a = ((a & 0xFF00) >> 8) | ((a & 0x00FF) << 8);
// In statistical binary 1 The number of
count = 0
while(a){
a = a & (a - 1); // One less for each execution 1
count++;
}
// Eliminate the last one 1
x=1100
x-1=1011
x&(x-1)=1000
// a&b&b =a
边栏推荐
猜你喜欢

企业级:Spire.Office for .NET:Platinum|7.7.x

陇原战“疫“2021网络安全大赛 Web EasyJaba

Test d'automatisation de l'interface utilisateur télécharger manuellement le pilote du navigateur à partir de maintenant

Use threejs to create geometry and add materials, lights, shadows, animations, and axes

ActiveReportsJS 3.1 VS ActiveReportsJS 3.0

Is "golden nine and silver ten" the best time to find a job? Not necessarily

Learning notes 8

C language course setting: cinema ticket selling management system

Technical tutorial: how to use easydss to push live streaming to qiniu cloud?

About the project error reporting solution of mpaas Pb access mode adapting to 64 bit CPU architecture
随机推荐
Threejs Internet of things, 3D visualization of farms (I)
Rust blockchain development - signature encryption and private key public key
MacBook安装postgreSQL+postgis
北京程序员的真实一天!!!!!
MindFusion.Virtual Keyboard for WPF
Threejs loads the city obj model, loads the character gltf model, and tweetjs realizes the movement of characters according to the planned route
面试字节,过关斩将直接干到 3 面,结果找了个架构师来吊打我?
技术教程:如何利用EasyDSS将直播流推到七牛云?
ClickPaaS低代码平台
Is there a sudden failure on the line? How to make emergency diagnosis, troubleshooting and recovery
优先使用对象组合,而不是类继承
laravel8 导出Excle文件
web资源部署后navigator获取不到mediaDevices实例的解决方案(navigator.mediaDevices为undefined)
How is the entered query SQL statement executed?
反絮凝剂-氨碘肽滴眼液
UI自動化測試從此告別手動下載瀏覽器驅動
Containerization Foundation
Common features of ES6
FFmepg使用指南
Redis source code analysis: redis cluster