基本类型和操作之位操作符
博客专区 > 柳哥 的博客 > 博客详情
基本类型和操作之位操作符
柳哥 发表于4年前
基本类型和操作之位操作符
  • 发表于 4年前
  • 阅读 67
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

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。
举例如下:


标签: scala
共有 人打赏支持
粉丝 200
博文 394
码字总数 347782
×
柳哥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: