• 欢迎访问梯云博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站点击访问
  • 梯云分享近期网站部分改版,改名为梯云博客
  • 梯云博客近期增设了“电影资源”板块,在视频区域下边哦~
  • 梯云音乐上线,提供一站式的音乐下载平台,点击前往梯云音乐
  • 如果百度网盘下载速度过慢,可使用该工具~Proxyee-down 百度网盘不限速
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏梯云吧!

几个基础的 位运算符

学习心得 做棵大树 3个月前 (11-15) 131次浏览 0个评论
文章目录[隐藏]

位运算

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作

运算符大致有:

按位与 and 运算符 &

相同位的两个数字都为 1,则为 1;若有一个不为 1,则为 0。

00101
11100
(&;或者 and)
00100

按位或 or 运算符 |

相同位只要一个为 1 即为 1。

00101
11100
(|或者 or)
11101

按位异或 xor 异或运算符 ^

异或的符号是^。
按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作.
操作的结果是如果某位不同则该位为 1, 否则该位为 0.
异或运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变
即(a xor b) xor b = a。xor 运算可以用于简单的加密。

00101
11100
(^或者 xor)
11001

按位取反 not 反运算符 ~

not 运算的定义是把内存中的 0 和 1 全部取反。
使用 not 运算时要格外小心,你需要注意整数类型有没有符号

00101
(~反运算 not)
11010

按位左移 shl 运算符 <<

a shl b 就表示把 a 转为二进制后左移 b 位(在后面添 b 个 0)
例如 100 的二进制为 1100100,而 110010000 转成十进制是 400
1100100 << 2 = 110010000
可以看出,a shl b 的值实际上就是 a 乘以 2 的 b 次方

按位右移 shr 运算符 >>

将操作数的所有位向又移动指定的位数。
shl 相似,a shr b 表示二进制右移 b 位(去掉末 b 位)
相当于 a 除以 2 的 b 次方(取整)


TeenShare 梯云分享 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明几个基础的 位运算符
喜欢 (1)
[欢迎投币]
分享 (0)
关于作者:
一个整天无所事事的,有时候忽然热血的孩子
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址