文档章节

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

柳哥
 柳哥
发布于 2014/06/06 11:49
字数 438
阅读 75
收藏 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。
举例如下:


© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 206
博文 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
85
0
编程思想 之「操作符」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋、,纠错。 在 Java 编程的过程中,我们对数据的处理,都是通过操作符来实现的。例如,用于...

qq_35246620
2017/12/09
0
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
181
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql 查询当天、本周,本月,上一个月的数据

今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1 近7天 SELECT * FROM 表名 wher......

BraveLN
今天
3
0
Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构

前面几节中,都是通过java层调用到jni中,jni向下到c++层并未介绍 看下Java层一个方法在c++层 MediaPlayer后续过程 frameworks/av/media/libmedia/MediaPlayer.cpp 找一个我们之前熟悉的setDa...

天王盖地虎626
今天
3
0
【Linux】【MySQL】CentOS7安装最新版MySQL8.0.13(最新版MySQL从安装到运行)

1、前言   框框博客在线报时:2018-11-07 19:31:06   当前MySQL最新版本:8.0.13 (听说比5.7快2倍)   官方之前表示:MySQL 8.0 正式版 8.0.11 已发布,MySQL 8 要比 MySQL 5.7 快 2 ...

Code辉
今天
5
0
oracle dg备库重建redolog:ora-00313,ora-00312

trace文件: Errors in file /crbank/dbs/app/product/diag/rdbms/rdbs/dbs/trace/dbs_mrp0_24445130.trc: ORA-00313: open failed for members of log group 8 of thread 1 ORA-00312: onl......

hnairdb
今天
3
0
深入分析Java I/O的工作机制 (一)

1.Java的I/O类库的基本架构 先说一下什么是类库:可以说是类的集合,类库包括接口、抽象类、具体类等。 I/O是机器获取和交互信息的主要渠道。 java在I/O上也一直在做持续的优化,在1.4版开始...

java菜分享
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部