[ neki_deki @ 20.02.2012. 14:42 ] @
pocetnik postavlja pocetnicko pitanje stoga oprostite sto mozda nisam najbolje formulisao, uzdam se u razumevanje onoga ko bi odgovorio.

a 0
b 0
c 0
d 0
e 1
f 0
g 0
h 0
i 0

kako bi trebao izgledati kod u c-u kojim bih mogao na odredjenoj adresi da vrednost bita promenim u njemu suprotnu, npr: ako je bit e=1 nakon koriscenja koda bit e postaje e=0. kada ponovnim primenjivanjem tog koda mesto e koje je sada 0 bude promenjeno u njemu suprotno tj u 1. da na adresi promenim vrednost samo jednog bita u njemu suprotnu a da ostali bitovi nepromenjeni.


hvala ES-ovci
[ Mihajlo Cvetanović @ 20.02.2012. 14:55 ] @
Taj operator se zove bitwise exclusive OR, ili skraćeno bitwise XOR. U kodu se koristi simbol ^ za tu operaciju. U nastavku svi brojevi su dati binarno. Ako je a=0011 0011 i b=0001 1000 onda je a^b=0010 1011. Ako imaš neku vrednost x i konstantu e=10 0000 onda posle izvršenja x ^= e (što je isto što i x = x ^ e) tačno jedan određeni bit (na šestom najslabijem mestu) u x promeniti vrednost.
[ neki_deki @ 20.02.2012. 15:44 ] @
Code:
stanjeadrese=inb(adresa);
stanjeadrese^=1;        //za promenu prvog bita, a za ostale redom 2 4 8 16 32 64 128
outb(stanjeadrese, adresa);
printf("novo stanje adrese %i\n",stanjeadrese);


ako sam dobro razumeo, a verujem da jesam posto mi radi to sto je trebalo, kod izgleda ovako?

ni brzeg ni preciznijeg odgovora ne videh HVALA!