Обсуждение: Bitwise operation

Поиск
Список
Период
Сортировка

Bitwise operation

От
"Rudi Starcevic"
Дата:
Hi,

I'm learning to use Postgresql's bitwise operator's as I'm interested
in building super fast search's based on user selections in web forms.

So far so good but I have just lost it a little so I thought I'd post.
Please growl at me if I'm asking on the wrong list :-)

I understand this:

SELECT 111 & 11 = 11

but not this

SELECT 1111 & 111 = 71

I was expecting the second example to be 

SELECT 1111 & 111 = 111

Hmm ...

Maybe I should search on the web for some more info on how to 
understand this logic.
Math was never my strongest I was always better at creative writing.

Any advice much appreciated.
Thanks
Best Regards
Rudi.









Re: Bitwise operation

От
Hubert Lubaczewski
Дата:
On Mon, 30 Jun 2003 22:28:15 +1000
"Rudi Starcevic" <rudi@oasis.net.au> wrote:

> SELECT 1111 & 111 = 71
> I was expecting the second example to be 
> SELECT 1111 & 111 = 111

hmm ..:
let's see:
dec(1111) is bin(10001010111)
dec(111)  is bin(00001101111)

so, when we'll "AND" them:
1111 :  10001010111 
111  :  00001101111 
-------------------         00001000111 : dec: 71 

quite reasonable, isn't it?

depesz


Re: Bitwise operation

От
Bruno Wolff III
Дата:
On Mon, Jun 30, 2003 at 22:28:15 +1000, Rudi Starcevic <rudi@oasis.net.au> wrote:
> 
> Hi,
> 
> I'm learning to use Postgresql's bitwise operator's as I'm interested
> in building super fast search's based on user selections in web forms.
> 
> So far so good but I have just lost it a little so I thought I'd post.
> Please growl at me if I'm asking on the wrong list :-)
> 
> I understand this:
> 
> SELECT 111 & 11 = 11
> 
> but not this
> 
> SELECT 1111 & 111 = 71
> 
> I was expecting the second example to be 
> 
> SELECT 1111 & 111 = 111

In the above examples the numbers are decimal values.

Maybe you wanted to do something like the following:

area=> select b'1111' & b'0111';?column?
----------0111
(1 row)


Re: Bitwise operation

От
Rudi Starcevic
Дата:
Bruno,Hubert,

Thanks.
It's all crystal clear now.

Now I can keep moving on with my app.

If all goes well I hope to add a 'techdoc' on how to do this.
I've found documents from other DBMS on using Bitwise operations
but not PG.

Cheers
Rudi.

Bruno Wolff III wrote:
On Mon, Jun 30, 2003 at 22:28:15 +1000, Rudi Starcevic <rudi@oasis.net.au> wrote: 
Hi,

I'm learning to use Postgresql's bitwise operator's as I'm interested
in building super fast search's based on user selections in web forms.

So far so good but I have just lost it a little so I thought I'd post.
Please growl at me if I'm asking on the wrong list :-)

I understand this:

SELECT 111 & 11 = 11

but not this

SELECT 1111 & 111 = 71

I was expecting the second example to be 

SELECT 1111 & 111 = 111   
In the above examples the numbers are decimal values.

Maybe you wanted to do something like the following:

area=> select b'1111' & b'0111';?column?
----------0111
(1 row)

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster