Short/Float/Integer berechnen...

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Lunatix

Betreff: Short/Float/Integer berechnen...

BeitragSo, Mai 13, 2007 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Ich hab derzeit folgendes Problem, das ich in PHP aus einem Socket 4 (2) Bytes auslese. Dies ist in dem Falle ein Integer oder Short, das problem ist, das es in php ja kein freadint gibt, sondern nur fread... Jetz die frage, wie erstelle ich nun aus den 4 bzw. 2 einzelnen Bytes den jeweiligen Datentyp? Bei Short dachte ich ja, ich könnte einfach B1 * B2 rechnen, dies ergibt allerdings bei 255*255 nicht den gewünschten Maximale Short wert...
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Holzchopf

Meisterpacker

BeitragSo, Mai 13, 2007 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
B1 *256 +B2, vielleicht auch B2 *256 +B1, bin mir nicht ganz sicher.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

BladeRunner

Moderator

BeitragSo, Mai 13, 2007 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
jop,
a+$ff*b+$ffff*c+$ffffff*d
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Lunatix

BeitragSo, Mai 13, 2007 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Yuchee!

Funktioniert =)
Hab zwar gemerkt, das ich kein Short brauche aber naja... funktioniert das Integer auch bei einem Float? (Bin mir nicht sicher, aber der pararmeter wird als Connection Time zurückgegeben, in Float. Komisch ist, das sich der Wert ständig ändert -> http://developer.valvesoftware...er_Queries bei A2S_PLAYER)

Code: [AUSKLAPPEN]
  function integer($bytes)
  {
   return $bytes[0]+$ff*$bytes[1]+$ffff*$bytes[2]+$ffffff*$bytes[3];
  }
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

David

BeitragSo, Mai 13, 2007 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein für float schaust du die die ieee Repräsentation für Fließkommawerte an. Ansonsten kannst du auch statt multiplizieren um 8, 16 und 24 bits shiften.

Andererseits kannst du auch einfach die Funktion unpack() verwenden.
http://bl4ckd0g.funpic.de

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group