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
ah XD danke ^^ oh mann.. .u und .a.. die zeit bleibt auch nicht stehen^^
:D :) :D
wird sofort berichtigt :)

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" ? :D ;)
^^

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! :allright:

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