RE: pole bitového pole v C

Miroslav Draxal evik na volny.cz
Sobota Leden 12 18:36:07 CET 2013


Ano, a porodníma bolestma jsem vyplodil něco hodně podobného, jenom  jsem
všude použil char, protože mam jenom 256 RAM. Na netu jsem kdysi zahlídnul
něco, co používalo nějakou fintu. Ale za boha si nevzpomenu kde to bylo.
Byli to dva řádky. Míra 

 

From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of Jan Waclawek
Sent: Saturday, January 12, 2013 3:45 PM
To: HW-news
Subject: Re: pole bitového pole v C

 

> je to vlastně pole char[3], chtěl bych napsat něco univerzálního, kde bych
> zadal ukazatel na počátek pole, jaký bit nastavit např.14.
>
> Nějak mě nenapadá žádný elegantní způsob. Ale zase, někde jsem to někde
> viděl v asm pro PIC. Míra

#include <stdint.h>
uint8_t bits[3]

void SetBit(uint8_t * bitfield, uint8_t idx, _Bool value) {
uint8_t mask;
  mask = 1 << (idx % 8);
  if (value) {
    bitfield[idx / 8] |= mask;
  } else {
    bitfield[idx / 8] &= (~mask) & 0xFF;
  }
}

_Bool GetBit(uint8_t * bitfield, uint8_t idx) {
  return (_Bool)(bitfield[idx / 8] & (1 << (idx % 8))
}

wek
wek
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



__________ Informace od ESET NOD32 Antivirus, verze databaze 7886 (20130112)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz



__________ Informace od ESET NOD32 Antivirus, verze databaze 7886 (20130112)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130112/ad49aed7/attachment.htm>


Další informace o konferenci Hw-list