Konvertera Hexadecimal till Decimalt - Optimering

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Azreal
Administratör



Medlem i: 4857 dagar
Från: Uppsala, bor i Göteborg
Status: Offline



#742425
Inlägg Skrivet: 2019-01-08 11:56      Ämne: Konvertera Hexadecimal till Decimalt - Optimering Citera

Hej,

Jobbar med ett udda projekt där jag måste typkonvertera en hexadecimal sträng till decimal.
Dokumentationen säger att jag måste göra detta:
Citat:
An array of bytes, where every 2 bytes are written using a little endian representation of an unsigned short.
VARBINARY(0xDC1FD91F) == bytes { 0xDC, 0x1F, 0xD9, 0x1F } == ushort { 0xDC1F, 0xD91F } -> Byte Swap -> ushort {0x1FDC, 0x1FD9 } == wave samples [8156,8153]


Vilket jag har löst genom att göra såhär:
PHP:
1:
 
2:
<?php
3:
 
4:
// Raw Data one block of ECG Sample from MSSQL database.
5:
$hexData "0x1F8B0800000000000400ED5DF79F254771DFBCFB766FF7EEF6C2EE059842446382C8D1269B6872C6D80401260A4C3602042688203216";
6:
 
7:
function WaveformHexToDecimal($HexData,$Json false$SampleSpeed 500){
8:
   //Setup array to collect data
9:
   $result = array();
10:
   // Clean 0x from the beginning of the hexsequence, maybe use regexp instead @todo
11:
   $HexData substr($HexData,2);
12:
   // We need to flip the byte order.
13:
   preg_match_all("/(..)(..)/",$HexData,$hits);
14:
   // Put the byte order back      
15:
   for($i 0$i count($hits[1]); ++$i) {
16:
         $result[] = $hits[2][$i].$hits[1][$i];
17:
   }
18:
   // Alright, Convert to decimal instead of hex.
19:
   $result array_map("hexdec",$result);
20:
   // Do you want Json?
21:
   if($Json === true){
22:
      
23:
      return json_encode($result);
24:
   }
25:
 
26:
   return $result ;
27:
    
28:
}


Spontant tänker jag att det borde gå att göra mer effektivt. Några tips på hur?
 

_________________
Konsultation via PM, inte gratis.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic