-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathoperators.rs
66 lines (57 loc) · 1.28 KB
/
operators.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#[allow(unused)]
fn main() {
let a: i32 = 1;
let b: i32 = 2;
let c: i32 = a + b;
let c = a - b;
let c = a * b;
// Integer division rounds down
let c = a / b;
println!("{a} / {b} = {c}");
// Remainder != modulo operator
// modulo operator
// -1 % 3 = 2
// remainder
// -1 % 3 = -1
let a = -1;
let b = 3;
let rem = a % b;
println!("{a} % {b} = {rem}");
// Literals
let c = 2i32 - 3;
let c = 3u32 * 2;
let c = 1.23e6;
// 1.23 x 1000000
println!("1.23e6 = {c}");
// Improve readability
let c = 1_000_000_000u32;
// Type casting
let a: u32 = 1;
let b = a as f32;
println!("b = {b}");
// Comparisions
let a = 1;
let b = 2;
let c = a == b;
let c = a != b;
let c = a <= b;
let c = a < b;
let c = a >= b;
let c = a > b;
// Boolean
let c = true && false;
let c = true || false;
let c = !true;
// Bitwise operators
// 101
let a: u8 = 5;
// 011
let b: u8 = 3;
println!("a & b = {:03b}", a & b);
println!("a | b = {:03b}", a | b);
println!("a ^ b = {:03b}", a ^ b);
println!("!a = {:03b}", !a);
println!("1 << 3 = {}", 1u32 << 3);
// 10 >> 2 = 1010 >> 2 = 10
println!("10 >> 2 = {}", 10u32 >> 2);
}