Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

operacije nad bitovima

[es] :: C/C++ programiranje :: operacije nad bitovima

[ Pregleda: 3939 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

damir0205

Član broj: 22726
Poruke: 107
*.cmu.carnet.hr.



Profil

icon operacije nad bitovima17.08.2005. u 17:16 - pre 227 meseci
ovo pitanje ima vise veze s mikrokontrolerima, ali buduci da se radi o c-u molim za pomoc.

kako nizia 4 i visa 4 bita varijable c preslikati u visa 4 bita varijable d?
u sljedecem primjeru se to preslikava na niza 4 bita varijable c.

d = (d & 0xF0) | (c >> 4);
d = (d & 0xF0) | (c & 0x0F);

ja bi trebao napraviti istu stvar samo sto bi se to trebalo odnositi na visa cetri bita varijable d?
unaprijed zahvaljujem

[Ovu poruku je menjao damir0205 dana 17.08.2005. u 18:17 GMT+1]
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.pat-pool.bgd.sbb.co.yu.



Profil

icon Re: operacije nad bitovima17.08.2005. u 17:28 - pre 227 meseci
Ako sam te dobro razumeo...

d = (c & 0xF0) | (d & 0x0F); // visa 4 iz C ide u visa 4 u D
d = ((c << 4) & 0xF0) | (d & 0x0F); // niza 4 iz C idu u visa 4 u D

u oba slucaja donja 4 bita u D nece biti promenjena

yooyo

[Ovu poruku je menjao yooyo dana 17.08.2005. u 18:30 GMT+1]
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: operacije nad bitovima17.08.2005. u 19:02 - pre 227 meseci
Nisam bas razumio pa pogledaj ovo.
Pretpostavljam da se radi o -- unsigned char?

c= 0010|0110
d= 0000|0000

Ti sada zelis izluciti 4 visa iz c i 4 niza iz c i zatim na njih primjeniti operator& pa to spremiti u 4 visa u d?

Ako je tako, to ide ovako:
d=( c & (c<<4) );

Interno:
0010|0110 << 4 = 0110|0000
0110|0000 & 0010|0110 = 0010|0000 = d

ili ako zelis samo d nadopuniti koristi |= umjesto =.

Nadam se da sam pomogao.

[Ovu poruku je menjao NrmMyth dana 17.08.2005. u 20:06 GMT+1]
 
Odgovor na temu

damir0205

Član broj: 22726
Poruke: 107
*.cmu.carnet.hr.



Profil

icon Re: operacije nad bitovima17.08.2005. u 19:44 - pre 227 meseci
hvala obadvojici puno ste pomogli, provjerio sam i radi.
 
Odgovor na temu

[es] :: C/C++ programiranje :: operacije nad bitovima

[ Pregleda: 3939 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.