From 1a0f57746d185684551358a35bb6d58b6b575810 Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Sun, 20 Sep 2026 22:23:31 +0800 Subject: logtwo --- bits.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/bits.c b/bits.c index 7e0ed68..8652b1a 100644 --- a/bits.c +++ b/bits.c @@ -67,7 +67,28 @@ int samesign(int x, int y) { * Difficulty: 4 */ int logtwo(int v) { - return 2; + int r = 0; + int s; + + s = (v > 0xFFFF) << 4; + v = v >> s; + r = r | s; + + s = (v > 0xFF) << 3; + v = v >> s; + r = r | s; + + s = (v > 0xF) << 2; + v = v >> s; + r = r | s; + + s = (v > 0x3) << 1; + v = v >> s; + r = r | s; + + r = r | (v >> 1); + + return r; } /* -- cgit v1.2.3