ach, ich verstehs nicht :( oder: Binäre Zahlen signed/unsign

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Max_der_Held
Beiträge: 595
Registriert: 18.04.2006 17:01
Wohnort: Bavaria
Kontaktdaten:

ach, ich verstehs nicht :( oder: Binäre Zahlen signed/unsign

Beitrag 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 :(
Zuletzt geändert von Max_der_Held am 25.01.2010 09:07, insgesamt 1-mal geändert.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: ach, ich verstehs nicht :(

Beitrag 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
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Max_der_Held
Beiträge: 595
Registriert: 18.04.2006 17:01
Wohnort: Bavaria
Kontaktdaten:

Re: ach, ich verstehs nicht :(

Beitrag von Max_der_Held »

ah XD danke ^^ oh mann.. .u und .a.. die zeit bleibt auch nicht stehen^^
:D :) :D
wird sofort berichtigt :)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ach, ich verstehs nicht :(

Beitrag 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
a²+b²=mc²
Benutzeravatar
Max_der_Held
Beiträge: 595
Registriert: 18.04.2006 17:01
Wohnort: Bavaria
Kontaktdaten:

Re: ach, ich verstehs nicht :(

Beitrag von Max_der_Held »

in "wird sofort berichtigt" ? :D ;)
^^

ne ok kein Problem ;)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ach, ich verstehs nicht :(

Beitrag von Kiffi »

Max_der_Held hat geschrieben:ne ok kein Problem ;)
danke! :allright:

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Max_der_Held
Beiträge: 595
Registriert: 18.04.2006 17:01
Wohnort: Bavaria
Kontaktdaten:

Re: ach, ich verstehs nicht :( oder: Binäre Zahlen signed/un

Beitrag 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
Antworten