[ damir0205 @ 17.08.2005. 17:16 ] @
| 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] |
[ yooyo @ 17.08.2005. 17:28 ] @
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]
[ NrmMyth @ 17.08.2005. 19:02 ] @
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]
[ damir0205 @ 17.08.2005. 19:44 ] @
hvala obadvojici puno ste pomogli, provjerio sam i radi.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.