[SOLVED] Ergebnis von CRC32FingerPrint <> FingerPrint ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
DK5UR
Beiträge: 5
Registriert: 07.08.2007 09:26
Wohnort: Reichelsheim

[SOLVED] Ergebnis von CRC32FingerPrint <> FingerPrint ?

Beitrag von DK5UR »

Ich würde erwarten das die Ergebnisse beider Funktionen gleich sind.
Bei mir ist dem aber nicht so, was ziemlich misslich ist :shock:

Code: Alles auswählen

FF = ReadFile(#PB_Any, #PB_Compiler_Home+"Examples\3D\Data\Textures\RustySteel.jpg")
If FF
  size = Lof(FF)
  If size > 0
    *mem = AllocateMemory(size)
  EndIf
  If *mem
    ReadData(FF, *mem, size)
    CompilerIf #PB_Compiler_Version >= 540
      UseCRC32Fingerprint()
      Debug Val("$"+Fingerprint(*mem, size,#PB_Cipher_CRC32))   ; Result for 5.40b8 32/64bit : 2524904063
    CompilerElse
      Debug CRC32Fingerprint(*mem, size)                        ; Result for 5.31 32/64bit   : -1770063233
    CompilerEndIf
    FreeMemory(*mem)
  EndIf
  CloseFile(FF)
EndIf
Kann das jemand bestätigen, oder ist das ein lokales Problem?

Heinz

OS: Win10 (64)
Zuletzt geändert von DK5UR am 30.09.2015 15:37, insgesamt 1-mal geändert.
Win10 (32/64), MacOS 10.10.5, Linux Mint 17.2 (32/64) - PB 5.31
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Ergebnis von CRC32FingerPrint <> FingerPrint ?

Beitrag von NicTheQuick »

Das sind die selben Zahlen, bloß dass die zweite negativ interpretiert wird, weil es ein Long ist:

Code: Alles auswählen

; 32-Bit Wert in Integer gespeichert
i.i = $967efa7f
Debug i

; 32-Bit Wert in Long gespeichert
l.l = $967efa7f
Debug l

; Signed Long zu Integer casten
lu.i = l & $ffffffff
Debug lu
Denke auch daran, dass einmal die "RustySteel.jpg" vom einen und einmal vom anderen Compiler genommen wird. In diesem Fall sind sie aber identisch, d.h. daran liegt es nicht.

Das Kommandozeilentool unter Linux bestätigt das auch:

Code: Alles auswählen

nicolas@tp-w530:~$ crc32 programme/purebasic{,_5.31}/examples/3d/Data/Textures/RustySteel.jpg
967efa7f	programme/purebasic/examples/3d/Data/Textures/RustySteel.jpg
967efa7f	programme/purebasic_5.31/examples/3d/Data/Textures/RustySteel.jpg
DK5UR
Beiträge: 5
Registriert: 07.08.2007 09:26
Wohnort: Reichelsheim

Re: Ergebnis von CRC32FingerPrint <> FingerPrint ?

Beitrag von DK5UR »

Danke für Erklärung.

Ich wußte doch, es ist ein lokales Problem zwischen den Ohren :roll:
Win10 (32/64), MacOS 10.10.5, Linux Mint 17.2 (32/64) - PB 5.31
Antworten