当前位置:   article > 正文

与、或、异或运算,以及常用运算(二进制赋值、取值、左移、右移、求余数、向上取整、向下取整)

二进制赋值

与、或、异或运算

1.与运算(&)

参加运算的两个数据,按二进制位进行“与”运算。

运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;

       即:两位同时为“1”,结果才为“1”,否则为0

例如:3&5  即 0000 0011 & 0000 0101 = 0000 0001   因此,3&5的值得1。

例如:9&5  即 0000 1001 (9的二进制补码)&00000101 (5的二进制补码) =00000001 (1的二进制补码)可见9&5=1。

2.或运算(|)

 

参加运算的两个对象,按二进制位进行“或”运算。

 

运算规则:0|0=0;   0|1=1;   1|0=1;    1|1=1;

 

   即 :参加运算的两个对象只要有一个为1,其值为1。

 

例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111   因此,3|5的值得7。 

例如:9|5可写算式如下: 00001001|00000101 =00001101 (十进制为13)可见9|5=13

3.异或运算(^)

 

参加运算的两个数据,按二进制位进行“异或”运算。

 

运算规则:0^0=0;   0^1=1;   1^0=1;   1^1=0;

  即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

 

例如:9^5可写成算式如下: 00001001^00000101=00001100 (十进制为12)可见9^5=12  


常用运算:(二进制赋值、取值、左移、右移、求余数、向上取整、向下取整)

1.赋值1 -> 或运算(|)

  1.    例如:40 | (1<<1)  = 42
  2.    0010 1000
  3.  | 0000 0010 
  4. ------------------
  5.    0010 1010

2.赋值0 -> 与非运算(&~)

  1. 例如: 42 & ~(1<<1) = 40
  2. 0010 1010 & ~0000 0010 
  3. ==》
  4.   0010 1010 
  5. & 1111 1110
  6. ---------------  
  7.   0010 1000

3.取值 -> 与运算(&)

  1. 例如:42 & 1<<1 = 2
  2. 0010 1010 
  3. 0000 0010 
  4. -----------------
  5.  0000 0010

4.乘以2 -> 左移一位( << 1) 

  1. 例如:43 * 2 = 43 << 1 = 86
  2. 0010 1011 >> 0101 0110 = 86

5.除以2 -> 右移一位( >> 1)

  1. 例如:43 / 2 = 43 >> 1
  2. 0010 1011 >> 0001 0101 = 21

6.除以2求余数 -> 与1( &1)

  1. 例如:432 = 43 & 1 = 1
  2. 0010 1011
  3. & 0000 0001
  4. --------------- 
  5. 0000 0001

7.向上取整 

  1. int a , int b => (a + b - 1) / b 
  2. 比如:
  3. a = 8, b = 3 => 2;  
  4. a = 9, b = 3 => 3
  5. a = 10, b = 3 => 4;

8.向下取整 

  1. int a , int b => a / b

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/175741
推荐阅读
相关标签
  

闽ICP备14008679号