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?
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.
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?
Älysit. Onneksi olkoon! :)
Vilkaise myös tämä: https://www.ohjelmointiputka.net/koodivinkit/
Aihe on jo aika vanha, joten et voi enää vastata siihen.