# Operators¶

In this chapter we will introduce the operators provided by the Ring programming language.

## Arithmetic Operators¶

The next table presents all of the arithmetic operators provided by the Ring language. Assume variable X=50 and variable Y=10 then:

Operator

Description

Example

Result

+

x+y

60

-

Subtract

x-y

40

*

Multiplies

x*y

500

/

Divide

x/y

5

%

Modulus

x%y

0

++

Increment

x++

51

- -

Decrement

x- -

49

## Relational Operators¶

The next table presents all of the relational operators provided by the Ring language. Assume variable X=50 and variable Y=10 then:

Operator

Description

Example

Result

=

Equal

x = y

False

!=

Not Equal

x != y

True

>

Greater than

x > y

True

<

Less than

x < y

False

>=

Greater or Equal

x >= y

True

<=

Less than or Equal

x <= y

False

## Logical Operators¶

The next table presents all of the logical operators provided by the Ring language. Assume variable X=True and variable Y=False then:

Operator

Description

Example

Result

and

Logical AND

x and y

False

or

Logical OR

x or y

True

not

Logical Not

not x

False

Another style

Operator

Description

Example

Result

&&

Logical AND

x && y

False

||

Logical OR

x || y

True

!

Logical Not

! x

False

## Bitwise Operators¶

The next table presents all of the bitwise operators provided by the Ring language. Assume variable X=8 and variable Y=2 then:

Operator

Description

Example

Result

&

Binary AND

x & y

0

|

Binary OR

x | y

10

^

Binary XOR

x ^ y

10

~

Binary Ones Complement

~x

-9

<<

Binary Left Shift

x << y

32

>>

Binary Right Shift

x >> y

2

## Assignment Operators¶

The next table presents all of the assignment operators provided by the Ring language.

Assume variable X=8 then:

Operator

Description

Example

Result

=

Assignment

x = 10

x=10

+=

x += 5

x=13

-=

Subtract AND assignment

x -= 3

x=5

*=

Multiply AND assignment

x *= 2

x=16

/=

Divide AND assignment

x /= 3

x=2.67

%=

Modulus AND assignment

x %= 2

x=0

<<=

Left shift AND assignment

x <<= 2

x=32

>>=

Right shift AND assignment

x >>= 2

x=2

&=

Bitwise AND assignment

x &= 4

x=0

|=

Bitwise OR and assignment

x |= 3

x=11

^=

Bitwise XOR and assignment

x ^= 4

x=12

## Misc Operators¶

Operator

Description

:literal

using : before identifier mean literal

Start:End

create list contains items from start to end

[list items]

define list items

list[index]

access list item

obj.name

using the dot operator to access object members (attributes/methods).

obj {stmts}

func(para,…)

call function using parameters separated by comma

? <expr>

Print expression then new line

## Operators Precedence¶

The next table present operators from higher precedence (Evaluated first) to lower precedence.

Operator

. [] () {}

- ~ :Literal [list items]

++ - -

Start:End

* / %

+ -

<< >>

&

| ^

< > <= >=

= !=

not !

and or && ||

Assignment = += -= *= /= %=>>= <<= &= ^= |=

?

Example:

```See 3+5*4       # prints 23
```