当前位置:网站首页>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
边栏推荐
- NEW:Devart dotConnect ADO. NET
- Possible stack order of stack order with length n
- [wp][introduction] brush weak type questions
- 25K 入职腾讯的那天,我特么哭了
- Threejs Internet of things, 3D visualization of farms (II)
- Judge whether the stack order is reasonable according to the stack order
- [数组]566. 重塑矩阵-简单
- Phpmailer reported an error: SMTP error: failed to connect to server: (0)
- This article takes you to understand the relationship between the past and present of Bi and the digital transformation of enterprises
- 快手、抖音、视频号交战内容付费
猜你喜欢

ActiveReportsJS 3.1 VS ActiveReportsJS 3.0

【看完就懂系列】一文6000字教你从0到1实现接口自动化

JWT vulnerability recurrence

Containerization Foundation

Is there a sudden failure on the line? How to make emergency diagnosis, troubleshooting and recovery

UI自動化測試從此告別手動下載瀏覽器驅動

Deep learning - LSTM Foundation

北京程序员的真实一天!!!!!

25K 入职腾讯的那天,我特么哭了

Behavior perception system
随机推荐
DMX parameter exploration of grandma2 onpc 3.1.2.5
特殊版:SpreadJS v15.1 VS SpreadJS v15.0
Official announcement! The third cloud native programming challenge is officially launched!
Threejs factory model 3DMAX model obj+mtl format, source file download
【刷题】BFS题目精选
What is the reason why the webrtc protocol video cannot be played on the easycvr platform?
测试开发是什么?为什么现在那么多公司都要招聘测试开发?
What is test development? Why do so many companies hire test developers now?
3. Package the bottom navigation tabbar
Plasticscm enterprise crack
【看完就懂系列】一文6000字教你从0到1实现接口自动化
Threejs rendering obj+mtl model source code, 3D factory model
C language course setting: cinema ticket selling management system
speed or tempo in classical music
Excuse me, my request is a condition update, but it is blocked in the buffer. In this case, can I only flush the cache every time?
面试汇总:这是一份全面&详细的Android面试指南
Soul 3: what is interface testing, how to play interface testing, and how to play interface automation testing?
IronXL for . NET 2022.6
根据入栈顺序判断出栈顺序是否合理
Learning notes 8