Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Bittioperaattorit

hunajavohveli [19.02.2004 17:02:49]

#

Tämä kuuluisi kyllä ehkä yleiseen keskusteluun, mutta QB:ssä tätä kuitenkin tarvitsen.
Eli voisiko joku selittää, mitä nämä bittioperaattorit, AND, OR ja XOR oikein tekevät. Siis tiedän toki, että jos kaksi lauseketta ovat molemmat tosia, AND palauttaa TRUE, muuten FALSE. OR palauttaa TRUE, jos edes toinen lauseke on tosi. Ja XOR palauttaa TRUE, jos ainoastaan yksi on tosi.
Mutta kun siis FALSE = 0, ja TRUE = -1 (tai 1) niin mitenkäs, jos vertailtavana on muitakin numeroita.
Esim.
10 AND 7 palauttaa 2. Mikä tässä on logiikka?

sooda [19.02.2004 17:09:52]

#

ne vertailee bittejä. 10:n bitit:

bitti    bitin arvo    bitti päällä?
0        1             0
1        2             1
2        4             0
3        8             1

7:n bitit:

bitti    bitin arvo    bitti päällä?
0        1             1
1        2             1
2        4             1
3        8             0

ja sitten vertaillaan:

bitti    bitti 10:ssä  bitti 7:ssä
0        0             1
1        1             1
2        0             1
3        1             0

tästä nähdään että samoja bittejä on pelkästään bitti 1, jonka arvo on 2. AND kertoo siis 2 koska samojen bittien yht. arvo on 2. OR antaisi 15 koska siinä olisi kaikki neljä ekaa bittiä päällä, joiden yhteenlaskettu summa on 15.

hunajavohveli [19.02.2004 17:14:15]

#

Aivan! No nyt hokasin tämän systeemin. :)

Edit: XOR antaisi siis 13, koska kaikissa kohdissa on 1 vain toisessa numerossa, paitsi kakkosessa, jossa molemmat bitit on ykkösiä. Älysinkö oikein?

sooda [19.02.2004 17:20:19]

#

Älysit. Onneksi olkoon! :)

Antti Laaksonen [20.02.2004 00:18:42]

#

Vilkaise myös tämä: https://www.ohjelmointiputka.net/koodivinkit/23650-qb-loogiset-operaattorit

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta