Hallo
Als Beispiel:
WriteByte(PORT_C,0x06) <- Wo kommt die 0x06 her bzw. wie
Hallo ,
Als Beispiel:
WriteByte(PORT_C,0x06) ,
schreibe byte für port C mit wert 0x06
www.dewassoc.com/support/msdos/decimal_hexadecimal.htm
diese Tabelle Zeigt wie es in HEX (also mit 0x davor)
wie es Dezimal
und wie es Binar ist.
Dezimal ist nach dem 10er System
Hex ist im 16er System
Binar ist im 2er System
demzufolge gibt es bei HEX für mehr als 1 Stelle (0-9) die buchstaben a-f um die werte (bei dezimal 2 stellig) rauf bis 15 (von 0-15 = 16 Werte) zu bilden .
also ist Dezmal 10 in Hex ein a , 11 ein b , … dem stellen wir noch die 0 voran 0a und dann die Zeichen für Hex wert(0x) , macht 0x0a ,0x0b,…
in binare ist es dann
…
ach ja wie geht das nochmal also jeden 2ten werte gibt es ,wie bei einer Uhr , wo der kleiner Zeiger die 12 überquert , eine Bewegung des großer Zeigers um 1 und der kleine Zeiger startet wieder bei 0 .
so geht das auch bei den Zahlensystemen .
also bei Dezimal 16 ist es HEX 0x10 (f geht ja nur bis 15)
bei binare und
damit das auch mal in eine formel gegossen wird (wir programmieren ja variable)
sind es 2 werte .
1 = 2^0 = 1
1 = 2^1 = 2
1 = 2^2 = 4
1 = 2^3 = 8
1 = 2^4 = 16
1 = 2^5 = 32
1 = 2^6 = 64
wenn also alle Bits links gesetzt sind also 1 (0 oder 1 sind die möglichen Zustände)
dann addiert man links die entsprechenden werte und erhält den dezimal wert .
1+2+4+8+16 + 32+64 = 127
und wenn ich nur das 1 und das 3 bit habe
1 = 2^0 = 1
0 = 2^1 = 2
1 = 2^2 = 4
0 = 2^3 = 8
0 = 2^4 = 16
0 = 2^5 = 32
0 = 2^6 = 64
rechne ich 1+4 = 5
so und nun kommen binareoperatoren oder bitoperatoren
diese UND ODER arbeiten anders als angenommen wird
eine UND verknüpfung heisst, beide bit an der selben wertstelle sind gesetzt nur dann hat wird an derselben wertstelle das bit gesetzt .
wenn ich also dezimal 8 und dezimal 40 mit UND verknüpfe werden nur die bits gesetzt im ergebnis die bei beiden eine 1 haben .
0 = 2^0 = 1
0 = 2^1 = 2
0 = 2^2 = 4
1 = 2^3 = 8
0 = 2^4 = 16
0 = 2^5 = 32
0 = 2^6 = 64
0 = 2^0 = 1
0 = 2^1 = 2
0 = 2^2 = 4
1 = 2^3 = 8
0 = 2^4 = 16
1 = 2^5 = 32
0 = 2^6 = 64
besser zum vergleich übereinander
0001000
0001010
0001000
machen wir ein OR heist es wenn mindestens 1 bit gesetzt ist wird die gleiche wertestelle auch auf 1 gesetzt . das heist bei 0 und 1 => 1 , bei 1 und 1 => 1 und bei 1 und 0 => 1 , 0 und 0 ist 0. oder anders gesagt wenn kein bit gesetzt dann 0 .
0001000
0001010
0001010
Wo kommt die 0x06 her bzw. wie
kann ich diese ermitteln?
oder als weiteres Bsp:
value_up = value & 0x10 <- 0x10 woher und wie?!?
Danke für die Mühen.
Wie und was der Wert 0x06 nun wirklich bedeutet (könnte ein befehl sein ) oder warum
das 0x10 ist, muss entsprechenden Befehlssätzen oder Bitbelegungen entnommen werden .
Die anderen haben es ja schon ausführlich erklärt .
Für die die etwas Üben wollen , wäre jetzt eine Umrechnungsformel von
DEZ HEX
BIN HEX
als Hausaufgabe übrig geblieben .