= 1) return true; else return false; } function GetInt16($data, &$datastart) { $temp = ''; $temp = GetInt8($data, $datastart) + (GetInt8($data, $datastart) * 256); return $temp; } function GetInt32($data, &$datastart) { $temp = ''; $temp = GetInt8($data, $datastart) + (GetInt8($data, $datastart)<<8) + (GetInt8($data, $datastart)<<16) + (GetInt8($data, $datastart)<<24); return $temp; } // Null-Terminated String function GetString($data, &$datastart) { $temp = ''; $counter = 0; while (ord($data[$datastart+$counter++]) != 0) $temp .= $data[$datastart+$counter-1]; $datastart += strlen($temp) + 1; return $temp; } function GetFloat32($data, &$datastart) { $decnumber = GetInt32($data, $datastart); $binnumber = base_convert($decnumber, 10, 2); while (strlen($binnumber) < 32) $binnumber = '0'.$binnumber; $exp = abs(base_convert(substr($binnumber, 1, 8), 2, 10)) - 127; if (substr($binnumber, 0, 1) == 1) $exp = 0 - $exp; $mantissa = 1; $mantadd = 0.5; for ($counter = 9; $counter < 32; $counter++) { if(substr($binnumber, $counter, 1) == 1) $mantissa += $mantadd; $mantadd = $mantadd / 2; } $temp = round(pow(2, $exp) * $mantissa); return $temp; } ?>