eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingSzybkie szukanie ustawionego bituRe: Szybkie szukanie ustawionego bitu
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net
    !1.eu.feeder.erje.net!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-
    02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!no
    t-for-mail
    Subject: Re: Szybkie szukanie ustawionego bitu
    Newsgroups: pl.comp.programming
    References: <1...@4...net>
    From: voy <v...@M...pl>
    Date: Tue, 1 Sep 2015 08:03:15 +0200
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101
    Thunderbird/38.2.0
    MIME-Version: 1.0
    In-Reply-To: <1...@4...net>
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 34
    Message-ID: <55e53fa3$0$27530$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: net-93-159-159-218.connected.pl
    X-Trace: 1441087395 unt-rea-a-02.news.neostrada.pl 27530 93.159.159.218:52911
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:208088
    [ ukryj nagłówki ]

    W dniu 2015-08-31 o 21:58, szemrany pisze:
    > Hejka,
    >
    > Mam liczbę 64 bit, traktuję ją jako tablicę bitów, zazwyczaj są w niej
    > ustawione jakieś bity, ale czasem nie.
    > Jak najszybciej znaleźć indeks ustawionego bitu?
    > Wiem jak szybko sprawdzić czy zapalone są wszystkie lub żaden, ale jak
    > odkryć, że "pali" się np. czterdziesty ósmy?
    > Najprostsza jest pętla z przesuwaniem bitowym i testem skrajnego bitu, ale
    > w najgorszym razie trzeba przeiterować 63 razy.
    > Może da się szybciej?
    > Może jakieś operacje arytmetyczne?
    >

    Nie bardzo wiem o co Ci chodzi :),
    ale masz tu przykład funkcji, która zlicza ilość ustawionych bitów,
    iterując tylko po ustawionych:

    BYTE GetBitCount( UINT uiBits )
    {
    BYTE byCnt = 0;
    while( uiBits )
    {
    ++byCnt;

    uiBits &= (uiBits - 1);
    }

    return byCnt;
    }


    Pozdr :)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: