【scala专栏_持续更新】11_scala运算符

【大纲】

在这里插入图片描述
【正文】

1.【结论】运算符与表达式概念

用来拼接变量或常量的符号,就是运算符

通过运算符连接起来的式子,就是表达式

# 说明:scala中,运算符也是函数。如,1 + 2 实际上是1.+(2)

2.分类

2.1.【结论】算数运算符

算数运算使用示例说明
+1 + 1 # 2加、正数、字符串拼接
-2 - 1 # 1减、负数
*2 * 2 # 4
/5 / 3 # 1
%5 % 3 # 2取余
# 注意:
    0.scala中没有 ++ 和 -- ,用 += 1 和 -= 1 来替代
    
    1.整数相除的结果,还是整数。 如果想获取到小数,则必须有浮点型数据参与。如,10 / 3 = 3,10 / 3.0 = 3.3333333333
    
    2.关于%操作, 假设求a % b的值, 它的底层原理是:a - a/b * b

2.2.【结论】赋值运算符

赋值运算使用示例说明
=a = b把变量b的值给变量a
+=a += ba = a + b
-=a -=ba = a - b
*=a *= ba = a * b
/=a *= ba = a / b
%=a %= ba = a % b

2.3.【结论】关系运算符

关系运算使用示例说明
>3 > 2 # true大于
>=2 >= 3 # false大于等于
<2 < 3 # true小于
<=2 <= 3 # true小于等于
==2 == 3 # false等于
!=2 != 3 # true不等于

scala与java关系算符的不同之处:

功能scalajava
比较数据值或内层元素值== 或 !=equals()
比较地址值eq()== 或 !=

2.4.【结论】逻辑运算符

逻辑运算使用示例说明
&&2 > 3 && 1 == 1 # false短路与
俩竖杠2 > 3 俩竖杠 1 == 1 # true短路或
!!true # false
# 注意:
    0.scala中,不支持连续取反。如,!!true会报错。java中允许

2.5.位运算符

2.5.1.【结论】进制

逢几进一就是几进制。如,逢二进一就是二进制、逢十进一就是十进制
进制名数据组成规则示例
二进制数据以0b或0B开头,由数字0或1组成0b10001001
八进制数据以0开头,由数字0~7组成064
十进制数据无特殊开头,由数字0~9组成33
十六进制数据以0x或0X开头,由0~9或A-F组成(大小写均可)0x66ABC
# 注意:
    关于二进制的数据,最前边的那一位是符号位,0表示正数,1表示负数。其他位是数值位。如,0b10001001是一个负数、0b00101010是一个正数

2.5.2.【结论】8421码

二进制位			0	0	0	0	0	0	0	0		

对应的十进制数据	128	64	32	16	8	4	2	1

方便计算十进制与二进制间的转换

2.5.3.【结论】原反补码

0.原反补码,指的都是二进制数据

1.计算机底层存储、操作和运算数据、都是采用数据的二进制补码

2.原码
    十进制的数据转成二进制数据,这个二进制就是原码

3.正数
    正数的原码、反码、补码都一样,不需要特殊计算

4.负数
    反码:
        原码的符号位不变,数值位按位取反
    补码:
        反码 + 1

2.5.4.【结论】位运算

0.位运算
    按照位Bit来快速计算数据值

1.只针对整型数据

2.作用
    海量数据时,位运算可实现高效修改数据值的操作
3.位运算操作的是数据的二进制补码形式
位运算使用示例说明
&2 & 2 # 2二进制每位相与
一个竖杠2 一个竖杠 2 # 2二进制每位求或
^2 ^ 2 # 0二进制每位异或
~~2 # -3二进制每位取反
<<2 << 1 # 4二进制左移,右侧补0 (说人话,就是乘以2多少次)
>>2 >> 1 # 1二进制右移,移到右端的低位舍弃,正数左侧补0,负数左侧补1 (说人话,就是除以2多少次,值取小)
>>>二进制无符号右移,空位用0补齐(?)
&=a &= ba = a & b
# 注意:
    0.小技巧:一个数字被同一个数字位异或两次,该数字值不变。如,10 ^ 20 ^ 20,结果还是10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheese海盐芝士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值