summaryrefslogtreecommitdiff
path: root/lab2/src/utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lab2/src/utils.rs')
-rw-r--r--lab2/src/utils.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/lab2/src/utils.rs b/lab2/src/utils.rs
new file mode 100644
index 0000000..801a108
--- /dev/null
+++ b/lab2/src/utils.rs
@@ -0,0 +1,20 @@
+pub fn powmod(x: u64, p: u64, m: u64) -> u64 {
+ let mut res = x;
+ for _ in 1..p {
+ res = (res * x) % m;
+ }
+ return res;
+}
+
+pub fn to_bytes(x: u64) -> (u8, u8, u8, u8) {
+ return (
+ ((x >> 0) & 0xFF) as u8,
+ ((x >> 8) & 0xFF) as u8,
+ ((x >> 16) & 0xFF) as u8,
+ ((x >> 24) & 0xFF) as u8,
+ );
+}
+
+pub fn from_bytes(x1: u8, x2: u8, x3: u8, x4: u8) -> u64 {
+ return (x1 as u64) << 0 | (x2 as u64) << 8 | (x3 as u64) << 16 | (x4 as u64) << 24;
+}