|
Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum. |
![]() |
|
Alati teme | Način prikaza |
|
![]() |
#1 |
novi član
Na probnom radu
Datum učlanjenja: 31.07.2007
Poruke: 23
Hvala: 0
7 "Hvala" u 5 poruka
![]() |
![]() naravno da mora xor posto treba da diras tj invertujes samo bitove pod maskom a tamo gde su bitovi u masci 0 ne diras nista...
mozda ce ti biti lakse: not A je isto sto i A xor #FFFFFFFF kada ti treba da invertujes npr. bitove 8-23 uradis: A xor #00000FF0 |
![]() |
![]() |
![]() |
#2 |
emperor Selassie
Grand Master
|
![]() Uf, uf, uf, ajde polako. Izgleda da nisam pratio predavanje kako treba. Kapiram ja šta je XOR i kako radi. Za šta je onda ~ operator u C-u? Evo vidim u svesci piše samo ~a = komplement od "a"
Dalje, razumeo sam da se maska pravi tako što stavim n jedinica na početku pa pomerim masku u stranu (recimo napravim 00000111 pa pomeram za 2 mesta ulevo i dobijem 00011100) i onda izlaz = ulaz OPERACIJA maska - tako? Jel može onda neko da mi da klasičan primer. Ako unesem broj 8, i napravim masku 00001110, šta dobijam na izlazu za operaciju XOR? Pozdrav i hvala unapred. Pišemo se sutra ![]() edit: Degojs, hvala ti, sad tek videh tvoju poruku. Detaljnije ću je analizirati sutra, sad sam stvarno jako pospan a rano idem u školu... |
![]() |
![]() |
![]() |
#3 |
Milan Cvejic
Wrote a book
|
![]() haha... jbte, i mene ste zbunili...
Da ti ne pishem detaljno, evo link pa pogledaj: http://www.vipan.com/htdocs/bitwisehelp.html Tu je sve lepo objasnjeno... Poenta price je da ti koriscenjem bitwise operatora dobijash neku drugu vrednost u registru... Dakle treba da znash logicke operacije AND, NOT, OR i XOR. e sada recimo imash broj 64 to je osam keceva: 11111111 i imash masku koja je 63 to je sedam keceva i nula: 11111110 i ukoliko uradish XOR opet cesh da dobijesh 64 iliti 11111111 e sada ti rece da ti treba komplement... koji potpuni ili nepotpuni?!? nepotpuno komplementiranje je u stvari negacija dakle koristicesh ~ a za potpuni komplement samo cesh na to sve da dodash 1...
__________________
http://weevify.com |
![]() |
![]() |
![]() |
#4 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#5 |
Milan Cvejic
Wrote a book
|
![]() u jbte... da da da... hahaha... kakav sam kreten... sorry osam keceva je 255 haha... 1000000 je 64... zajebo sam se...
Sorry ponovo...
__________________
http://weevify.com |
![]() |
![]() |
![]() |
#6 |
Ivan Dilber
Sir Write-a-Lot
|
![]() al ste ga iskomplikovali....
![]() sve se svodi na ono sto je gruja vec napisao: ako neku vrednost A XOR-ujes sa nekom maskom (nizom bita), binarno gledano na pozicijama gde je u maski 1, u rezultatu ce ta pozicija da ima invertovanu vrednost iz A, a tamo gde je u maski 0 nista se nece promeniti... znaci tako mozes da togglujes vrednosti nekih bitova u flagovima, ako su upaljeni ugasis ih i obrnuto (odnosno invertujes im vrednost, matematicki gledano). Znaci XOR je za toggle, ako zelis da upalis neki bit pomocu maske onda koristis OR, ako zelis da ga ugasis onda koristis AND sa invertovanom maskom... i tako ti rade ti racunari, prosto ![]() btw, ako ti i dalje nije sasvi leglo kako ovo radi, otvori windows kalkulator, prebaci ga u scientific mod i igraj se malo sa binarnim brojevima... kroz praksu se najbolje kapira..
__________________
Leadership is the art of getting people to want to do what you know must be done. |
![]() |
![]() |
![]() |
#7 |
profesionalac
Professional
|
![]() Off Topic: Ko nije radio sprajtove na Spekiju ili Atariju ST ne sme da pricha o bit-maskama, od sad pa nadalje ![]() |
![]() |
![]() |
![]() |
#8 |
emperor Selassie
Grand Master
|
![]() E sad mi je delimično jasno: Ja ne mogu samo nad onim delom maske koji je obeležen jedinicama da vršim operaciju već nad ulaznim podatkom i celom maskom, zato mora ^ a ne ~ ... tako?
![]() E sad još pravljenje maski... ja sam razumeo da se uzmu sve nule, pa se doda n broj jedinica pa se sve to pomera za pomeraj p i kako se pomera tako se dodaju nule s desne strane, right? I to radi ovaj kod: maska = ~(~0 << n) << p; Šta npr. raditi kad između jedinica treba da imam x nula u maski? :P npr. 000110100 Kako to radi? ![]() @LiquidBrain: Sad ću da pogledam taj link Poslednja izmena od Nemanja Avramović : 30. 10. 2007. u 18:12. |
![]() |
![]() |
![]() |
#9 |
Goran Pilipović
Sir Write-a-Lot
|
![]() Prvo sto treba da uradis je da dobro skapiras sta je AND, OR, XOR, NOT...
AND: 1 i 1 = 1, sve ostalo daje 0 OR: 0 i 0 = 0, sve ostalo daje 1 ... Pa onda tako da odlucis koji ces operator da koristis. Pored toga treba da znas precedence, odnosno kojim redom se izvrasavaju operacije
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
![]() |
![]() |
![]() |
#10 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
![]() ![]() |
![]() A da probaš pa vidiš..?
![]()
__________________
Commercial-Free !!! |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Bitwise operacije + Osnovne strukture podataka | MrSteel | Flash | 5 | 12. 05. 2007. 20:24 |