Seite 1 von 1
ach, ich verstehs nicht :( oder: Binäre Zahlen signed/unsign
Verfasst: 24.01.2010 15:17
von Max_der_Held
warum debugged er nicht das gleiche?
will der streit? gleich schalt ich ihn aus
Code: Alles auswählen
d.b = %00000001
b.b = %11111100
Debug b | d ; = %11111101
Debug %11111100 | %00000001
hilfe

Re: ach, ich verstehs nicht :(
Verfasst: 24.01.2010 15:28
von DarkDragon
Naja das erste ist signed (Zweierkomplement) und das zweite größer als 8 bits.
So:
Code: Alles auswählen
d.a = %00000001
b.a = %11111100
Debug b | d ; = %11111101
Debug %11111100 | %00000001
Oder so:
Code: Alles auswählen
Procedure.b Byte(value.b)
ProcedureReturn value
EndProcedure
d.b = %00000001
b.b = %11111100
Debug b | d ; = %11111101
Debug Byte(%11111100 | %00000001)
Oder so:
Code: Alles auswählen
d.b = %00000001
b.b = %11111100
Debug (b | d) & $FF ; = %11111101
Debug %11111100 | %00000001
Re: ach, ich verstehs nicht :(
Verfasst: 24.01.2010 15:41
von Max_der_Held
Re: ach, ich verstehs nicht :(
Verfasst: 25.01.2010 02:32
von Kiffi
Max_der_Held hat geschrieben:wird sofort berichtigt

bei der Gelegenheit kannst Du bitte auch mal den Betreff
dieses Threads korrigieren.
Grüße ... Kiffi
Re: ach, ich verstehs nicht :(
Verfasst: 25.01.2010 09:06
von Max_der_Held
in "wird sofort berichtigt" ?
^^
ne ok kein Problem

Re: ach, ich verstehs nicht :(
Verfasst: 25.01.2010 10:47
von Kiffi
Max_der_Held hat geschrieben:ne ok kein Problem

danke!
Grüße ... Kiffi
Re: ach, ich verstehs nicht :( oder: Binäre Zahlen signed/un
Verfasst: 22.03.2010 17:40
von Max_der_Held
kurzes Update -> hier eine kurze Anwendung des Ganzen, weil ich gerade so lang am Übertragen der Map sitze..
Dank des Verschiebens kann man die Netzwerk-datenübertragung auf ca. 1/4 der Datenmenge reduzieren (bei großen Karten von strategiespielen)
immerhin fällt aber trotzdem noch ca. 1 MB an Karte an..
Code: Alles auswählen
byte.b
bodenimage = 2
woodart = 3
bergart = 1
belagart = 0
byte = (bodenimage )<< 6 | woodart <<3 | bergart << 1 | belagart
Debug "bodenimage: " + Str( ( (byte >> 6) & %00000011))
Debug "Woodart: " + Str( ( ( byte >> 3 & %00000111 )))
Debug "bergart: " + Str( ( (byte >> 1) & %00000011) )
Debug "belagart " + Str ( (byte ) & %00000001)
(Bodenimage geht von 0-3, woodart von 0-7, bergart 0-3 und belagart von 0-1. belag sind z.b. blumen)
lg