php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.12.2008, 10:23  
Neuer Benutzer
 
Registriert seit: 11.12.2008
Beiträge: 12
bolzerrr befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] VB -> php

Hallo!

Ich möchte folgene VB Code zum erstellen eine CRC16 Lookup Tables in php implementieren:

PHP-Code:
  Dim CRCT(0 To 255) As Long       ' Codetabelle für CRC-16-Check
  Dim CRC As Long                  ' 
Kurzzeitige Verwendung
  Dim i 
as Integer                 ' Schleifenvariable
  Dim j as Integer                 ' 
Schleifenvariable

  
For 0 To 255
      CRC 
i
      
For 1 To 8
         
If (CRC And 1) = 1 Then
            CRC 
Fix(CRC 2) Xor 33800
         
Else
            
CRC Fix(CRC 2)
         
End If
      
Next j
      CRCT
(i) = CRC
   Next i 
bei mir schaut das dann so aus:

PHP-Code:
 // CRC Table aufbauen
 
$crct = array();
 for(
$i 250;$i <= 255;$i++) {
  
$crc $i;
  for(
$j 1;$j <= 8;$j++) {
   if ((
$crc && 1) == 1) {
    
$crc bcdiv($crc22) xor 33800;
   } else {
    
$crc bcdiv($crc22);
   }
  } 
// J schleife
  
$crct[$i] = $crc;
 } 
// i schleife 
Das ergebniss ist ein 256 stelliges array gefüllt mit nullen- was sicherlich nicht korrekt ist. bin leider nicht bewander in vb aber habe so gut es geht mich informiert. irgendwo steckt noch ein fehler drinne, seht ihr ihn??
bolzerrr ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.12.2008, 10:26  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

geht es dir darum das genau so zu implementieren ? oder gehts dir um crc16 ?

Da findest du in den User Contributed Notes Code zu crc16
-> PHP: crc32 - Manual
robo47 ist offline   Mit Zitat antworten
Alt 15.12.2008, 10:32  
Neuer Benutzer
 
Registriert seit: 11.12.2008
Beiträge: 12
bolzerrr befindet sich auf einem aufstrebenden Ast
Standard

Eigentlich geht es nur um CRC16, allerdinggs CRC16-XMODEM, das ein anderes Polynom verwendet als das Beispiel im manual- habe bereist Versucht dieses Beispiel umzuschreiben, leider ohne Erfolg (CRC16 = x16 + x12 + x5 + 1 CRC16XMODEM = x16 + x15 + x10 + x3).

Der gesammt VB Code zu CRC16XMODEM ist hier

Hier noch die gesammt Implementation, aber der Table ist schon leer..

PHP-Code:
function crc16_vb($data)
{
 
// CRC Table aufbauen
 
$crct = array();
 for(
$i 250;$i <= 255;$i++) {
  
$crc $i;
  for(
$j 1;$j <= 8;$j++) {
   if ((
$crc && 1) == 1) {
    
$crc bcdiv($crc22) xor 33800;
   } else {
    
$crc bcdiv($crc22);
   }
  } 
// J schleife
  
$crct[$i] = $crc;
 } 
// i schleife
 // var_dump($crct);
 // berechnen
 
$crc 0;
 for(
$i 0;$i <= strlen($data);$i++) {
  
$hb floor(bcdiv($crc2562));
  
$lb bcsub($crcbcmul(256$hb));
  
$j $lb xor ord(substr($data$i1));
  
$crc $crct[$j] xor $hb;
 }
 
$hb floor(bcdiv($crc2562));
 
$lb bcsub($crcbcmul(256$hb2), 2);
  echo 
"$hb - $lb";
 return 
true;


Geändert von bolzerrr (15.12.2008 um 10:41 Uhr).
bolzerrr ist offline   Mit Zitat antworten
Alt 15.12.2008, 11:45  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Bitte ändere deinen Threadtitel noch in etwas aussagekräftiges. Danke.
cycap ist offline   Mit Zitat antworten
Alt 15.12.2008, 11:56  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

^ statt xor verwenden
$crc&1 statt $crc&&1, wahlweise $crc%2
nach (int) casten.

PHP-Code:
$crct = array();
for(
$i 0$i<=255$i++) {
  
$crc $i;
  for(
$j=0$j<8$j++) {
    if ( 
$crc&) {
      
$crc = (int)($crc/2) ^ 33800;
    }
    else {
      
$crc = (int)($crc/2);
    }
  }
  
$crct[$i] = $crc;
}

print_r($crct); 
David ist offline   Mit Zitat antworten
Alt 15.12.2008, 12:15  
Neuer Benutzer
 
Registriert seit: 11.12.2008
Beiträge: 12
bolzerrr befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank!

PHP-Code:
function crc16_vb($data)
{
 
// CRC Table aufbauen
 
$crct = array();
 for(
$i 0;$i <= 255;$i++) {
  
$crc $i;
  for(
$j 1;$j <= 8;$j++) {
   if ((
$crc &1) == 1) {
    
$crc = (int)($crc 2) ^ 33800;
   } else {
    
$crc = (int)($crc 2);
   }
  } 
// J schleife
  
$crct[$i] = (int)$crc;
 } 
// i schleife  
 // berechnen
 
$crc 0;
 for(
$i 0;$i <= strlen($data);$i++) {
  
$hb = (int)floor((int)($crc 256));
  
$lb = (int)$crc - (int)(256 $hb);
  
$j $lb ord(substr($data$i1));
  
$crc $crct[$j] ^ $hb;
 }
 
$hb = (int)floor((int)($crc 256));
 
$lb = (int)$crc - (int)(256 $hb);

 return array(
'HB' => $hb'LB' => $lb);

ist der resultierende code. sieht gut aus, danke

Geändert von bolzerrr (15.12.2008 um 12:27 Uhr).
bolzerrr ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
crc16 xmodem vb6, vb 2008 crc16, php crc16 code, xmodem crc16 visual basic, crc16 php, php crc16, crc16 table, crc polynomtabelle, crc lookuptable berechnen, vba crc-berechnung, crc16 code, crc 16 x16 x15 x10 x3, crc xmodem x16 x15 x10 x3 java, php crc16 table, vb6 crc16, vb6 crc, \crc32\ javascript online crctabel, crc16 berechnen php-skript, crc 33800, crc32 berechnen vb6

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum