Article View: pl.comp.lang.c
Article #1091Re: Operacje na bitach
From: Marek Kotowski
Date: Fri, 30 Jan 1998 14:56
Date: Fri, 30 Jan 1998 14:56
40 lines
2045 bytes
2045 bytes
milosz danielewski wrote: > >I np. ustawienie N-tego bitu (makroinstrukcja): > > > >#define SET_BIT(N) (Bits[N/CHAR_BIT] |= (1 << \ > > N%CHAR_BIT)) > > > >3. Jesli program wymaga kilku tablic bitow ustawianych/ > >testowanych osobno, mozna wprowadzic funkcje alokujaca > >tablice bitow: > > > >BIT_ARRAY *AllocBitArray(int NumberOfBits); > > I wlasnie w ten sposob powstaja w pelni przenosne kobyly powolne jak > nagla krew ! Implementacja bitow na tablicy bajtow ! O tempora, o > mores ! 1. Co do przenosnosci: dotyczyly tego tylko dwie sprawy: stala CHAR_BIT (char moze miec wiecej bitow niz 8) oraz obudowanie funkcji operujacych na bitach, a takze na owych strukturach BIT_ARRAY. Jest to wprawdzie technika z dziedziny programowania obiektowego, ale programisci kodujacy w C czesto ja stosuja. Tablica bajtow sama w sobie nie jest zadna szczegolnie przenosna konstrukcja. 2. Operacja opisana za pomoca makroinstrukcji SET_BIT(N) jest bardzo szybka (jedno wyrazenie zmiany elementu tablicy). Ale rozumiem, ze to dla Pana zbyt powolne. 3. Bardzo prosze opisac nam, jak Pan by "zaimplementowal bity" (Panski termin) inaczej niz za pomoca tablicy zmiennych integralnych (mozna tu tez uzyc int)), zeby w dodatku operacje na bitach wykonywaly sie znacznie szybciej. Mowa oczywiscie o tablicach kilkudziesieciu, kilkuset czy nawet kilku tysiecy bitow. Pozdrawiam Marek Kotowski
Technical Details
Message-ID:
<34D1EA01.56EA@imm.org.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mailReferences:
<34D0605D.5843@imm.org.pl> <34d0acbb.1907122@news.icm.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mail From: Marek Kotowski <mkot@imm.org.pl> Newsgroups: pl.comp.lang.c Subject: Re: Operacje na bitach Date: Fri, 30 Jan 1998 15:56:01 +0100 Organization: Instytut Maszyn Matematycznych Lines: 40 Message-ID: <34D1EA01.56EA@imm.org.pl> References: <34D0605D.5843@imm.org.pl> <34d0acbb.1907122@news.icm.edu.pl> NNTP-Posting-Host: 148.81.238.53 Mime-Version: 1.0 X-Mailer: Mozilla 3.01Gold (Win95; I) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit