Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #79260 > unrolled thread

Re: Extract Indices of Numpy Array Based on Given Bit Information

Started byChris Angelico <rosuav@gmail.com>
First post2014-10-18 18:10 +1100
Last post2014-10-18 18:10 +1100
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Extract Indices of Numpy Array Based on Given Bit Information Chris Angelico <rosuav@gmail.com> - 2014-10-18 18:10 +1100

#79260 — Re: Extract Indices of Numpy Array Based on Given Bit Information

FromChris Angelico <rosuav@gmail.com>
Date2014-10-18 18:10 +1100
SubjectRe: Extract Indices of Numpy Array Based on Given Bit Information
Message-ID<mailman.14959.1413616243.18130.python-list@python.org>
On Sat, Oct 18, 2014 at 6:02 PM, Artur Bercik <vbubbly21@gmail.com> wrote:
> So, the  Bit No. 2-5 for the following case is '1101', right?
>
> 1073741877: 1000000000000000000000000110101
>
>  If my required bit combination for Bit No. 2-5 is '1011', then the above
> number (1073741877) is not chosen, right??
>
> Look forward to know your confirmation.

(Side point: Please don't top-post. The convention on this mailing
list, and most other technical mailing lists, is what's sometimes
called "interleaved style"; you trim the quoted text to what's needed
for context, and put your text underneath what you're referring to.
See https://en.wikipedia.org/wiki/Posting_style#Interleaved_style for
more info.)

>>> 1073741877&60
52
>>> bin(52)
'0b110100'

Everything I've written with the triple-angle-bracket marker can be
typed in at the Python prompt, and you'll see exactly what it does. In
this case, you can see that you're absolutely right: 1073741877 has
1101 in those positions, so if you're looking for 1011, it won't
match:

>>> 0b101100
44

However, 1073741869 would:

>>> 1073741869&60
44

The way to test would be something like this:

>>> (1073741877 & 0b111100) == 0b101100
False
>>> (1073741869 & 0b111100) == 0b101100
True

ChrisA

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web