博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
位运算
阅读量:5435 次
发布时间:2019-06-15

本文共 949 字,大约阅读时间需要 3 分钟。

& 与

| 或

^ 异或

~ 取补

<< 左移

>> 右移

其中取补只有一个操作数而其它的位操作符都有两个操作数。这些运算都不会产生溢出位。操作符的操作数为整型或者是可以转换为整型的任何其它类型。

  • 与运算

操作数按二进制位进行与运算,运算规则为:

0&0=0

0&1=0

1&0=0

1&1=1

这说明除了两个位均为1, 与运算结果为1。 其它情况下与运算结果均为0。

比如2 和10 进行与运算,2 的二进制表示 00000010,10 的二进制表示 00001010, 与运算的结果 00000010, 所以2&10 的结果为2

  • 或运算

操作数按二进制位进行或运算,运算规则为:

0|0=0

0|1=1

1|0=1

1|1=1

这说明除了两个位均为0, 或运算结果为0; 其它情况下或运算结果均为1。

比如2 和10 进行或运算, 2 的二进制表示 00000010, 10 的二进制表示 00001010, 或运算的结果 00001010 。所以2|10 的结果为10。

  • 异或运算

操作数按二进制位进行异或运算。运算规则为:

0^0=0

0^1=1

1^0=1

1^1=0

这说明当两个位相同时,异或运算结果为0。 不相同时异或运算结果为1。

比如 2 和10 进行异或运算, 2 的二进制表示 00000010, 10 的二进制表示 00001010, 异或运算的结果 00001000, 所以2^10 的结果为8

  • 取补运算

取补运算对操作数的每一位取补. 如对10 取补结果为: 10 的二进制表示 00001010 与运算的结果 11110101

  • 左移运算

位左移运算将整个数按位左移若干位,左移后空出的部分0。比如:8位的byte型变量

byte a=0x65(即二进制的01100101),将其左移3位:a<<3的结果是0x27(即二进制的00101000)。

  • 右移运算

位右移运算将整个数按位右移若干位,右移后空出的部分填0。比如:8位的byte型变量

Byte a=0x65(既(二进制的01100101))将其右移3位:a﹥﹥3的结果是0x0c(二进制00001100)。

转载于:https://www.cnblogs.com/msnadair/p/4037433.html

你可能感兴趣的文章
算法面经之百度
查看>>
JavaWeb基础知识第三部分
查看>>
java并发编程系列一、多线程
查看>>
parseInt的源码阅读
查看>>
不定期更新的毒鸡汤
查看>>
OpenCV数字图像处理(1) 总记
查看>>
接口和类
查看>>
jfarme
查看>>
学习中的小笔记
查看>>
test
查看>>
LVS 负载均衡 keepalive
查看>>
The eleven Day
查看>>
HTTP 无法注册URL 进程不具有命名空间的访问权限
查看>>
spring 基于multipart 文件上传
查看>>
循环冗余校验(CRC)算法入门引导
查看>>
Swift继承的用法
查看>>
【[六省联考2017]组合数问题】
查看>>
数据结构与算法学习 第1季02 链表的基本功能 C++实现
查看>>
Oracle Listener
查看>>
java String spilt 问题
查看>>