Обсуждение: 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
Дата:
<div class="moz-text-html" lang="x-western"> Bruno,Hubert,<br /><br /> Thanks.<br /> It's all crystal clear now.<br
/><br/> Now I can keep moving on with my app.<br /><br /> If all goes well I hope to add a 'techdoc' on how to do
this.<br/> I've found documents from other DBMS on using Bitwise operations<br /> but not PG.<br /><br /> Cheers<br />
Rudi.<br/><br /> Bruno Wolff III wrote:<br /><blockquote cite="mid20030630124249.GB26142@wolff.to" type="cite"><pre
wrap="">OnMon, Jun 30, 2003 at 22:28:15 +1000, Rudi Starcevic <a class="moz-txt-link-rfc2396E"
href="mailto:rudi@oasis.net.au"><rudi@oasis.net.au></a>wrote: </pre><blockquote type="cite"><pre wrap="">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   </pre></blockquote><pre wrap="">
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
 </pre></blockquote></div><br />