当前位置:网站首页>Introduction to bit operation

Introduction to bit operation

2022-07-07 19:40:00 The lights are on`

Bit operation learned from Yu Ju , To share a wave of

What is bit operation ?

An operation : Bit operation is the operation provided by the system to directly operate the digits of numbers . There are the following operations :

<< Shift left operator

>> Shift right operator

  |    or

  &  And

  ~  Take the opposite

  ^  Exclusive or

The system stores numbers in binary , That is, every number in memory is composed of 0、1 The string formed ; Introduce the decimal word ( I.e 、 Ten 、 One hundred, etc , Be careful , This is just a quote , The object described is still binary 0、1 character string ), Bit operation is to directly change the number in some base , Give a few examples to illustrate :

The strings in the following brackets are binary , No more marking

  • (1010)>>1    This operation means 1010 Moves to the right one , It turned out to be (101); Because the fourth 0 Due to the right shift, it is discarded , If (1010)>>2, The result is (10), Because the last 10 Are all rounded off .
  • (1010)<<1    This operation means 1010 The left one , The result is (10100); The extra digits make up 0, Top ten 1 Moved to the hundreds .
  • & 、 | Operation and programming language || and   && Same operation , If all are 1 be & As the result of the 1, One is 1 be | As the result of the 1, In other cases, the result is 0. Such as 1010 & 0010=0010,1010 | 0010=1010.
  •  ~ The operation is different from !, This operation is to make 0、1 swap , namely 0 become 1,1 become 0; Such as ~1010 The result is 0101 . 
  •   ^    Exclusive or operation , Is to judge whether the two are different , The difference is 1, The same thing is 0. such as 1010 ^ 0011 = 1001.
  • among , In XOR operation , Any number exclusive or 0 unchanged , Any number exclusive or 1 It's the opposite . Such as 1010 ^ 1=1011.
  • What we should pay attention to here is ,&、|、^ The operation is the operation of a single letter in the corresponding position of two strings , for example :1010 | 1=1011, The latter has only one , As for the last bit of the former, or operation , The first three of the former are not affected .

Bit operation tips :

Introduce a bit operation tips :

a=a^b;
b=a^b;
a=a^b;

ask : What are the functions of these three statements ?

Let's deduce it to know :

so , The function of a statement is to exchange a,b Value . 

Basic operation of bit operation :

Basic bit operations are important , Here are some parts of :

  1. Get rid of the last one :x>>1
  2. Add one at the end 0:x<<1
  3. Add one at the end 1:x<<1 + 1(+ Also available | )
  4. Turn the last one into 1:x | 1
  5. Turn the last one into 0:(x>>1)<<1  perhaps x | 1 - 1
  6. Last negative :x^1
  7. Number right k A into 1:x | (1<<(k-1))
  8. Number right k A into 0:x & (~(1<<(k-1)))

Operation priority :

When writing code, you must pay attention to the possible impact of different operator priorities , So be sure to add parentheses .

 

原网站

版权声明
本文为[The lights are on`]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071725358092.html