From 4862c2cf3eafdb6fa017a4e86a6fad8b4fc64171 Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Sun, 13 Nov 2022 11:50:28 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=B2=D1=82=D0=BE=D1=80=D0=B0=D1=8F=20=D0=BB=D0=B0=D0=B1?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab2/src/utils.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lab2/src/utils.rs (limited to 'lab2/src/utils.rs') 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; +} -- cgit v1.2.3