文档章节

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

柳哥
 柳哥
发布于 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。
举例如下:


© 著作权归作者所有

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

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

qq_35246620
2017/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈“李氏代换”——从纪念金庸和斯坦李说起

李氏代换(LSP)简介 李氏代换是软件设计的一个原则,又名依赖倒转原则或依赖倒置原则,其衍生原则有接口分离原则等。该原则由Barbara Liskov于1988年提出。 该原则指出,程序中高级别的元素...

SamYjy
24分钟前
14
0
JavaScript实现在线websocket WSS测试工具 -toolfk程序员工具网

本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。T...

toolfk
42分钟前
1
0
linux-scp 远程拷贝报错原因

刚拿到一台重装后的服务器,远程ssh都正常,但是一scp拷贝东西就报错: 本地确定是有scp命令的,而且如果是本地没有scp不会报后面那句lost connection,因此就是远程没有scp这个命令。因此在...

linuxprobe16
56分钟前
1
0
OSChina 周六乱弹 —— 谁小时候没当过熊孩子呀

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《行尸走肉》- amazarashi 《行尸走肉》- amazarashi 手机党少年们想听歌,请使劲儿戳(这里) @神话 :周五了,周末干啥...

小小编辑
今天
123
4
docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部