From 8dc87e8d58730cd93b1da80f02863398ff8e2dae Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Sun, 20 Sep 2026 23:26:28 +0800 Subject: byteSwap --- bits.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'bits.c') diff --git a/bits.c b/bits.c index 8652b1a..0be410f 100644 --- a/bits.c +++ b/bits.c @@ -101,7 +101,19 @@ int logtwo(int v) { * Difficulty: 2 */ int byteSwap(int x, int n, int m) { - return 2; + int ns = (n << 3) ; + int ms = (m << 3); + int nb = (x >> ns) & 0xFF; + int mb = (x >> ms) & 0xFF; + + int mask = ~((0xFF << ns) | (0xFF << ms)); + + x = x & mask; + + x = x | (nb << ms); + x = x | (mb << ns); + + return x; } /* -- cgit v1.2.3