varför blir X = 55 när jag skriver så här 34 skrivet i binär form är 100010. 23 skrivet i binär form är 10111. En bitvis Or operation med dessa ger resultatet 110111, vilket skrivet i decimalform är 55. GRUNDKURS Binära tal....hmm... kan någon svara på detta
X = 34 Or 23
fins det någon logisk förklaraing till det?Sv: hmm... kan någon svara på detta
MSSv: hmm... kan någon svara på detta
Decimalt 345 kan skrivas så här:
3*100 + 4*10 + 5*1 = 345
Här används basen 10 Så egentligen skall vi skriva:
3*10^2 + 4*10^1 + 5*10^0 = 345 (^n = upphöjt till, 10^2 = 100, 10*10 osv.)
I decimala talsystemet använder vi siffrorna 0-9 (10 stycken, eftersom basen ju är 10)
I det binära talsystemet används basen 2 och följaktligen bara 2 siffror nämligen 0 och 1.
På liknande sätt som i det decimala talsystemet bygger vi större tal genom att vikta positionerna med exponenten av basen i talsystemet.
Exempel:
100010 (bin) = 1*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 34 (dec)
På binära tal kan man tillämpa olika lokiska uttryck (funktioner)
Så här funkar det med Xor....
0 Xor 0 = 0
0 Xor 1 = 1
1 Xor 0 = 1
1 Xor 1 = 0
Det du gör när du skriver 34 Xor 23 är en bitvis jämförelse med alla individuella positioner på nedanstående sätt. Fattas bitpositioner i MSB (Most Significant Bit så lägg dir 0:or så att du får lika många bitpositioner i båda talen. MSB är den bit som har den högsta vikten. I detta fall 2^5)
100010 (bin) = 34 (dec)
Xor 010111 (bin) = 23 (dec)
-------------------------------------
110101 (bin) = 53 (dec)
På liknande sätt kan man använda andra logiska operatorer på binära tal.
AND
0 And 0 = 0
0 And 1 = 0
1 And 0 = 0
1 And 1 = 1
Or
0 Or 0 = 0
0 Or 1 = 1
1 Or 0 = 1
1 Or 1 = 1
Not
Not 0 = 1
Not 1 = 0
Nand (Not And)
0 Nand 0 = 1
0 Nand 1 = 1
1 Nand 0 = 1
1 Nand 1 = 0
Nor (Not Or)
0 Nor 0 = 1
0 Nor 1 = 0
1 Nor 0 = 0
1 Nor 1 = 0
/peterh (departure of computer science EK Järbo)