From owner-freebsd-hackers Sat Aug 21 7:11:25 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from ns.skylink.it (ns.skylink.it [194.177.113.1]) by hub.freebsd.org (Postfix) with ESMTP id A0AA114F43 for ; Sat, 21 Aug 1999 07:11:19 -0700 (PDT) (envelope-from n_hibma@skylink.it) Received: from heidi.plazza.it (va-135.skylink.it [194.185.55.135]) by ns.skylink.it (8.9.1/8.8.8) with ESMTP id QAA28245 for ; Sat, 21 Aug 1999 16:11:22 +0200 Received: from localhost (localhost [127.0.0.1]) by heidi.plazza.it (8.9.3/8.8.5) with ESMTP id MAA17661 for ; Sat, 21 Aug 1999 12:54:32 +0200 (CEST) Date: Sat, 21 Aug 1999 12:54:32 +0200 (CEST) From: Nick Hibma X-Sender: n_hibma@heidi.plazza.it Reply-To: Nick Hibma To: FreeBSD Hackers mailing list Subject: from number to power of two Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Does anyone know an inexpensive algorithm (O(1)) to go from an number to the next (lower or higher) power of two. 1 -> 1 2,3 -> 2 4,5,6,7 -> 4 8,9,10,11,12,13,14,15 -> 8 etc. So %1101 should become either %10000 or %1000. The only solution I have so far is a table. That is a possibility as the the highest number will be 32 I think. Nick -- e-Mail: hibma@skylink.it To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message