Re: Bit count
| От | Rikard Bosnjakovic |
|---|---|
| Тема | Re: Bit count |
| Дата | |
| Msg-id | d9e88eaf0911241018p7b95bdaaqc65717bb6b663a60@mail.gmail.com обсуждение исходный текст |
| Ответ на | Bit count (Nathaniel Trellice <naptrel@yahoo.co.uk>) |
| Ответы |
Re: Bit count
Re: Bit count Re: Bit count |
| Список | pgsql-novice |
On Tue, Nov 24, 2009 at 16:47, Nathaniel Trellice <naptrel@yahoo.co.uk> wrote:
[...]
> If not, can anyone recommend the most efficient way within postgres to implement the kind of bit-counting tricks
foundat:
Perhaps something like this:
CREATE OR REPLACE FUNCTION bitcount(i integer) RETURNS integer AS $$
DECLARE n integer;
DECLARE amount integer;
BEGIN
amount := 0;
FOR n IN 1..16 LOOP
amount := amount + ((i >> (n-1)) & 1);
END LOOP;
RETURN amount;
END
$$ LANGUAGE plpgsql;
bos=# select bitcount(6);
bitcount
----------
2
(1 row)
bos=# select bitcount(7);
bitcount
----------
3
bos=# select bitcount(4711);
bitcount
----------
7
(1 row)
bos=# select bitcount(1024);
bitcount
----------
1
(1 row)
--
- Rikard
В списке pgsql-novice по дате отправления: