位运算符
2020-05-26 16:06:48来源:博客园 阅读 ()
位运算符
位运算符
位运算是对操作数以二进制比特(bit)位为单位进行的操作运算,位运算的操作数和结果都是整型数。几种位运算符和相应的运算规则如表所示。
运算符 | 用法 | 操作 |
---|---|---|
>> | op1>>op2 | 将op1右移op2个位(带符号) |
<< | op1<<op2 | 将op1左移op2个位(带符号) |
>>> | op1>>>op2 | 将op1右移op2个位(不带符号的右移) |
& | op1&op2 | op1和op2都是true,结果才为true |
⊙ | op1⊙op2 | op1和op2有一个是true,则结果为true |
^ | op1^op2 | op1和op2是不同值 |
注:⊙是 | 。因为markdown格式的原因,打上去显示不了。。。
【注意】对于&和|运算符,参与运算的两个运算量可以是逻辑值,也可以是数值数据。对于数值数据,将对两运算量按位对应计算,这时,1相当于true,0相当于false。这个位运算符没有前面逻辑符的附加特点。
移位运算符
移位运算是将某一变量所包含的各比特位按指定方向移动指定的位数。通过对第一个运算对象左移或右移右边的操作数的位数来对数据执行位操作。
移位运算符的例子:
x(十进制表示) | x的二进制补码表示 | x<<2 | x>>2 | x>>>2 |
---|---|---|---|---|
30 | 00011110 | 0111100 | 00000111 | 00000111 |
-17 | 11101111 | 10111100 | 11111011 | 00111011 |
补码最高位是符号位,0表示正数,1表示负数。所以在>>这个带符号右移的运算中,右移后左边留的空位又符号位数字补齐。而不带符号的右移中,右移后左边的空位一律填0。带符号的左移在后面补0。
按位逻辑运算
位运算符&,|,~,^分别提供了基于位的与,或,求反,异或操作。其中,异或是指两位值不同时,对应结果位为1,否则为0。
例:x=13,y=43
先将数据转换为二进制:x=00001101,y=00101011。
x=11110010,就是把00001101按位求反,得到11110010。然后这个形式是负数的补码形式,负数的补码是由正数的补码(原码)按位求反再加1,所以我们先对11110010求反,得到00001101,再减去1,得到00001100=14。所以x=14。
x&y=1001,即9。
原文链接:https://www.cnblogs.com/HIIM/p/12968898.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 【JAVA SE基础篇】10.运算符优先级与类型转换 2020-05-09
- 特殊的赋值运算符 2020-05-09
- 【JAVA SE基础篇】9.运算符的分类与内容 2020-05-09
- Java中包装类与基本类型运算的性能比较(Integer i += 1) 2020-04-26
- 自动生成小学四则运算题目 2020-04-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash