我是靠谱客的博主 妩媚斑马,最近开发中收集的这篇文章主要介绍位运算详解一、位运算的介绍二、位运算的使用三、位运算的技巧,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

目录

一、位运算的介绍

二、位运算的使用

(1)左移<<

(2)右移>>

(3)按位与&

(4)按位或|

(5)按位取反~

(6)异或^

三、位运算的技巧​​​​​​​


一、位运算的介绍

什么是位运算呢?位运算就是二进制数据进行运算的运算符,这里我们主要说到左移,右移,按位与,按位或,按位取反,异或。

二、位运算的使用

(1)左移<<

左移<< 顾名思义就是向左移动。

如数据:1010<<1
1010左移一位后:10100
即向左移动,低位补0

(2)右移>>

右移>>顾名思义就是向右移动

如数据:1010>>1
1010右移一位:101
向右移动

(3)按位与&

按位与与代码中的逻辑运算从差不多,两个都是1才是1,否则是0.

如:1 0 1 0
  & 1 1 0 0
  ————————————
    1 0 0 0

(4)按位或|

按位或和我们代码中加的逻辑运算差不多,在对两个二进制数进行或运算时,只要其中一个有1,那么就是1,两个都为0才是0.

如:1 0 1 0
 |  0 1 1 0
 _____________
    1 1 1 0

(5)按位取反~

按位取反就是对于每一位1变成0,0变成1.

如:~1010

取反后:0101

(6)异或^

异或就是一位一位查看,看看是不是不一样,不一样就是1,反之就是0

如:  1 0 1 0 0 1
  ^   1 1 0 0 1 0
    _______________
      0 1 1 0 1 1

由此我们可以推出一些简单的结论:

1:任何数异或0是不变的,1^0=1,0^0=0

2:   任何数异或1取反,1^1=0,0^1=1

三、位运算的技巧

去掉最后一位
x>>1

在最后一位加个0
x<<1

在最后一位加个1
(x<<1)|1

把最后一位变成1
x|1

把最后一位变成0
(x|1)-1

最后一位取反
x^1

把右数第k为变成1
x|(1<<(k-1))
解释:将1向左移动k-1位,第k位是1,1到k-1位是0

吧右数第k位变成0
x&(~(1<<(k-1)))
解释:1向左移动k-1位,第k位是1,1到k-1位是0,取反后在与

 

最后

以上就是妩媚斑马为你收集整理的位运算详解一、位运算的介绍二、位运算的使用三、位运算的技巧的全部内容,希望文章能够帮你解决位运算详解一、位运算的介绍二、位运算的使用三、位运算的技巧所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部