From e78d250e1fb73184d895b9663affb0e0f675b129 Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Sun, 20 Sep 2026 23:30:08 +0800 Subject: optimize byteSwap --- bits.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/bits.c b/bits.c index 0be410f..e280f1e 100644 --- a/bits.c +++ b/bits.c @@ -101,19 +101,11 @@ int logtwo(int v) { * Difficulty: 2 */ int byteSwap(int x, int n, int m) { - int ns = (n << 3) ; - int ms = (m << 3); - int nb = (x >> ns) & 0xFF; - int mb = (x >> ms) & 0xFF; + int ns = n << 3; + int ms = m << 3; + int diff = ((x >> ns) ^ (x >> ms)) & 0xFF; - int mask = ~((0xFF << ns) | (0xFF << ms)); - - x = x & mask; - - x = x | (nb << ms); - x = x | (mb << ns); - - return x; + return x ^ (diff << ns) ^ (diff << ms); } /* -- cgit v1.2.3