2020-06-20 06:06:17 +02:00
|
|
|
Numeric Operators
|
|
|
|
=================
|
|
|
|
|
|
|
|
{{#include ../links.md}}
|
|
|
|
|
|
|
|
Numeric operators generally follow C styles.
|
|
|
|
|
|
|
|
Unary Operators
|
|
|
|
---------------
|
|
|
|
|
|
|
|
| Operator | Description |
|
|
|
|
| -------- | ----------- |
|
|
|
|
| `+` | Plus |
|
|
|
|
| `-` | Negative |
|
|
|
|
|
|
|
|
```rust
|
|
|
|
let number = -5;
|
|
|
|
|
|
|
|
number = -5 - +5;
|
|
|
|
```
|
|
|
|
|
|
|
|
Binary Operators
|
|
|
|
----------------
|
|
|
|
|
2020-06-22 16:02:49 +02:00
|
|
|
| Operator | Description | Integers only |
|
|
|
|
| --------------- | ---------------------------------------------------- | :-----------: |
|
|
|
|
| `+` | Plus | |
|
|
|
|
| `-` | Minus | |
|
|
|
|
| `*` | Multiply | |
|
|
|
|
| `/` | Divide (integer division if acting on integer types) | |
|
|
|
|
| `%` | Modulo (remainder) | |
|
|
|
|
| `~` | Power | |
|
|
|
|
| `&` | Bit-wise _And_ | Yes |
|
|
|
|
| <code>\|</code> | Bit-wise _Or_ | Yes |
|
|
|
|
| `^` | Bit-wise _Xor_ | Yes |
|
|
|
|
| `<<` | Left bit-shift | Yes |
|
|
|
|
| `>>` | Right bit-shift | Yes |
|
2020-06-20 06:06:17 +02:00
|
|
|
|
|
|
|
```rust
|
|
|
|
let x = (1 + 2) * (6 - 4) / 2; // arithmetic, with parentheses
|
|
|
|
|
|
|
|
let reminder = 42 % 10; // modulo
|
|
|
|
|
|
|
|
let power = 42 ~ 2; // power (i64 and f64 only)
|
|
|
|
|
|
|
|
let left_shifted = 42 << 3; // left shift
|
|
|
|
|
|
|
|
let right_shifted = 42 >> 3; // right shift
|
|
|
|
|
|
|
|
let bit_op = 42 | 99; // bit masking
|
|
|
|
```
|