From f64f7de412dd06affb0670831bdd117bde33a192 Mon Sep 17 00:00:00 2001 From: Franciszek Malinka Date: Tue, 6 Apr 2021 14:28:27 +0200 Subject: Update --- Semestr 4/ask/zadanie1/rozw.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Semestr 4/ask/zadanie1/rozw.c (limited to 'Semestr 4/ask') diff --git a/Semestr 4/ask/zadanie1/rozw.c b/Semestr 4/ask/zadanie1/rozw.c new file mode 100644 index 0000000..068a268 --- /dev/null +++ b/Semestr 4/ask/zadanie1/rozw.c @@ -0,0 +1,21 @@ +#include +#include + +const uint64_t C[] = { + 0x5555555555555555LL, + 0x3333333333333333LL, + 0x0f0f0f0f0f0f0f0fLL, + 0x00ff00ff00ff00ffLL, + 0x0000ffff0000ffffLL, + 0x00000000ffffffffLL +}; + +uint64_t revbits(uint64_t x) { + x = ((x & C[0]) << 1) | ((x >> 1) & C[0]); + x = ((x & C[1]) << 2) | ((x >> 2) & C[1]); + x = ((x & C[2]) << 4) | ((x >> 4) & C[2]); + x = ((x & C[3]) << 8) | ((x >> 8) & C[3]); + x = ((x & C[4]) << 16) | ((x >> 16) & C[4]); + x = ((x & C[5]) << 32) | ((x >> 32) & C[5]); + return x; +} \ No newline at end of file -- cgit v1.2.3