Related Articles
Kotlin Operators
• Difficulty Level : Easy
• Last Updated : 23 Aug, 2019

Operators are the special symbols that perform different operation on operands. For example + and – are operators that perform addition and subtraction respectively. Like Java, Kotlin contains different kinds of operators.

• Arithmetic operator
• Relation operator
• Assignment operator
• Unary operator
• Logical operator
• Bitwise operator

Airthmetic Operators –

OperatorsMeaningExpressionTranslate to
Subtractiona – ba.minus(b)
*Multiplicationa * ba.times(b)
/Divisiona / ba.div(b)
%Modulusa % ba.rem(b)
 `fun main(args: Array)``{``    ``var a = ``20` `var b = ``4` `println(``"a + b = "` `+ (a + b))``        ``println(``"a - b = "` `+ (a - b))``        ``println(``"a * b = "` `+ (a.times(b)))``        ``println(``"a / b = "` `+ (a / b))``        ``println(``"a % b = "` `+ (a.rem(b)))``}`

Output:

```a + b = 24
a - b = 16
a * b = 80
a / b = 5
a % b = 0
```

Relational Operators –

OperatorsMeaningExpressionTranslate to
>greater thana > ba.compareTo(b) > 0
<less thana < ba.compareTo(b) < 0
>=greater than or equal toa >= ba.compareTo(b) >= 0
<=less than or equal toa <= ba.compareTo(b) <= 0
==is equal toa == ba?.equals(b) ?: (b === null)
!=not equal toa != b!(a?.equals(b) ?: (b === null)) > 0
 `fun main(args: Array)``{``    ``var c = ``30``    ``var d = ``40``    ``println(``"c > d = "``+(c>d))``    ``println(``"c < d = "``+(c.compareTo(d) < ``0``))``    ``println(``"c >= d = "``+(c>=d))``    ``println(``"c <= d = "``+(c.compareTo(d) <= ``0``))``    ``println(``"c == d = "``+(c==d))``    ``println(``"c != d = "``+(!(c?.equals(d) ?: (d === ``null``))))``}`

Output:

```c > d = false
c < d = true
c >= d = false
c <= d = true
c == d = false
c != d = true
```

Assignment Operators -

OperatorsExpressionTranslate to
+=a = a + ba.plusAssign(b) > 0
-=a = a - ba.minusAssign(b) < 0
*=a = a * ba.timesAssign(b)>= 0
/=a = a / ba.divAssign(b) <= 0
%=a = a % ba.remAssign(b)
 `fun main(args : Array){`` ``var a = ``10``    ``var b = ``5``    ``a+=b``    ``println(a)``    ``a-=b``    ``println(a)``    ``a*=b``    ``println(a)``    ``a/=b``    ``println(a)``    ``a%=b``    ``println(a)`` ` `}`

Output:

```15
10
50
10
0
```

Unary Operators -

OperatorsExpressionTranslate to
++++a or a++a.inc()
----a or a--a.dec()
 `fun main(args : Array){``    ``var e=``10``    ``var flag = ``true``    ``println(``"First print then increment: "``+ e++)``    ``println(``"First increment then print: "``+ ++e)``    ``println(``"First print then decrement: "``+ e--)``    ``println(``"First decrement then print: "``+ --e)``}`

Output:

```First print then increment: 10
First increment then print: 12
First print then decrement: 12
First decrement then print: 10
```

Logical Operators -

OperatorsMeaningExpression
&&return true if all expressions are ture(a>b) && (a>c)
||return true if any of expression is true(a>b) || (a>c)
!return complement of the expressiona.not()
 `fun main(args : Array){``    ``var x = ``100``    ``var y = ``25``    ``var z = ``10``    ``var result = ``false``    ``if``(x > y && x > z)``     ``println(x)``    ``if``(x < y || x > z)``     ``println(y)``    ``if``( result.not())``     ``println(``"Logical operators"``)``}`

Output:

```100
25
Logical operators
```

Bitwise Operators -

OperatorsMeaningExpression
shlsigned shift lefta.shl(b)
shrsigned shift righta.shr(b)
ushrunsigned shift righta.ushr()
andbitwise anda.and(b)
orbitwise ora.or()
xorbitwise xora.xor()
invbitwise inversea.inv()
 `fun main(args: Array)``{``    ``println(``"5 signed shift left by 1 bit: "` `+ ``5``.shl(``1``))``    ``println(``"10 signed shift right by 2 bits: : "` `+ ``10``.shr(``2``))``    ``println(``"12 unsigned shift right by 2 bits:  "` `+ ``12``.ushr(``2``))``    ``println(``"36 bitwise and 22: "` `+ ``36``.and(``22``))``    ``println(``"36 bitwise or 22: "` `+ ``36``.or(``22``))``    ``println(``"36 bitwise xor 22: "` `+ ``36``.xor(``22``))``    ``println(``"14 bitwise inverse is: "` `+ ``14``.inv())``}`

Output:

```5 signed shift left by 1 bit: 10
10 signed shift right by 2 bits: : 2
12 unsigned shift right by 2 bits:  3
36 bitwise and 22: 4
36 bitwise or 22: 54
36 bitwise xor 22: 50
14 bitwise inverse is: -15
```
My Personal Notes arrow_drop_up