文档章节

基本类型和操作之位操作符

柳哥
 柳哥
发布于 2014/06/06 11:49
字数 438
阅读 74
收藏 2

Scala包含了可以对整数类型的单个位执行操作的若干位操作方法:按位与运算(&)、按位或运算(|)和按位异或运算(^)。一元按位取补操作符(也就是按位非)(~ ,unary_~),反转它的操作数的每一位。
按位与(&):两个bit串按位进行逻辑与,全1为1,有0为0。
按位或(|):两个bit串按位进行逻辑或,有1为1,全0为0。
按位异或(^):两个bit串按位进行异或操作,相同为0,相异为1。
按位非(~):bit串逐位取反。

第一个表达式,1 & 2,对1(0001)和2(0010)的每一位进行与运算,产生0(0000)。
第二个表达式,1 | 2,对同样的操作数的每一位执行或运算,产生3(0011)。
第三个表达式,1^ 3,异或1(0001)和3(0011)的每一位,产生2(0010)。
最后的表达式,~1,翻转1(0001)的所有位,产生了-2,二进制看起来是:1111 1111 1111 1111 1111 1111 1111 1111。

Scala整数类型还提供了三个位移方法,分别是左移(<<)、右移(>>)和无符号右移(>>>)。以中缀操作符方式使用时,位移方法会按照右侧指定的整数值次数逐位移动左侧的整数。左移和无符号右移在移动的时候填入0右移则在移动时填入左则整数的最高位(符号位)。
左移(<<):补0。(注:对于正数,x << n 相当于 x 乘以 2的n次方 )
右移(>>):符号位是0补0,是1补1。(注:对于正数,x >> n 相当于 x 除以 2的n次方)
无符号右移(>>>):补0。
举例如下:


© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 203
博文 405
码字总数 347782
作品 0
杭州
技术主管
《JAVA编程思想》学习笔记——第三章 操作符

在最底层,Java的数据是通过适用操作符来操作的。 几乎所有的操作符都只能操作"基本类型"。例外的操作符是"=","=="和"!=",这些操作符能操作所有的对象(这也是对象易令人糊涂的地方)。除此之...

lixiaocheng18
2016/12/29
0
0
位操作基础篇之位操作全面总结

Title: 位操作基础篇之位操作全面总结 Author: MoreWindows E-mail: morewindows@126.com KeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位...

长平狐
2012/12/10
35
0
位操作基础篇之位操作全面总结

Title: 位操作基础篇之位操作全面总结 Author: MoreWindows E-mail: morewindows@126.com KeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位...

抢地主
2016/05/03
38
0
位操作基础篇之位操作全面总结

Title: 位操作基础篇之位操作全面总结 Author: MoreWindows E-mail: morewindows@126.com KeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位...

彭博
2012/04/12
135
0
(转载)位操作基础篇之位操作全面总结

Title: 位操作基础篇之位操作全面总结 Author: MoreWindows E-mail: morewindows@126.com KeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位...

Avner
05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【mpvue】三

使用了快1个月,陆续整理发现的坑 1、pageA-pageB-pageA-pageC 如果以这种顺序,大概理解成,列表进详情B, 返回列表进入详情C,那么进入详情C的时候,会因为缓存,先展现详情B的内容。解决方...

登天的感觉
14分钟前
1
0
在EXCEL指定SHEET页,指定文字位置,插入批注

Java操作EXCEL文件,利用POI,在EXCEL指定SHEET页中指定文字位置处插入批注 package excel; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.hssf......

zhaochaochao
15分钟前
1
0
一些网站。

UI schema,可以用json定义UI表单:https://jsonforms.io/examples/array

王坤charlie
22分钟前
1
0
百万连接,百亿吞吐量服务的JVM性能调优实战

转载占小狼博客 应用:shark-新美大移动端网络优化(每日接受移动端请求约150亿) 应用特点 : qps比较高,新生代增长飞快 用户的连接需要维持一段时间 单机需要维持海量连接,几十万的级别 以...

BakerZhu
25分钟前
1
0
iOS涂色涂鸦效果、Swift仿喜马拉雅FM、抽屉转场动画、拖拽头像、标签选择器等源码

iOS精选源码 LeeTagView 标签选择控件 为您的用户显示界面添加美观的加载视图 Swift4: 可拖动头像,增加物理属性 Swift版抽屉效果,自定义转场动画管理器 Swift 仿写喜马拉雅FM 可能是最好用...

sunnyaigd
25分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部