位运算符介绍

王 茂南 2018年9月14日08:32:49
评论
693字阅读2分18秒
摘要关于六个常见的位运算符的介绍,包括~(位求反),<<(左移),>>(右移),&(按位与),|(按位或)和^(按位异或);用一个例子做介绍,方便记录学习。

文章目录(Table of Contents)

简介

位运算是指按二进制进行的运算。在程序中,常常需要处理二进制位的问题。C/C++语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。

位运算符介绍

下面使用表格来进行六个操作符的介绍:

操作符 功能 用法
~ 位求反 ~expr
<< 左移 expr1 << expr2
>> 右移 expr1 >> expr2
& 位与 expr1 & expr2
^ 位异或 expr1 ^ expr2
| 位或 expr1 | expr2

例子

下面的例子用scala写一下(电脑上暂时只有scala的解释器),这个原理也都是一样的:

位运算符介绍

代码解释

short为16位整数,故x,y的二进制表示如下:

x=3(00000000 00000011)

y=5(00000000 00000101)


~ 00000000 00000011
= 11111111 11111100(65532或者-4)(至于为什么同样的二进制位表示的数不一样,这与计算机的数值表示有关,具体原因可搜索“补码”)


00000000 00000011
& 00000000 00000101
= 00000000 00000001(1)


00000000 00000011
^ 00000000 00000101
= 00000000 00000110(6)


00000000 00000011
|  00000000 00000101
= 00000000 00000111(7)


00000000 00000011<<1
= 00000000 00000110(6)


00000000 00000101>>1
= 00000000 00000010(2)

参考链接

位运算符介绍(一):C/C++位运算符

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2018年9月14日08:32:49
  • 转载请务必保留本文链接:https://mathpretty.com/9617.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: