Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   2 Bytes zu einem komprimieren (https://www.delphipraxis.net/159818-2-bytes-zu-einem-komprimieren.html)

BUG 14. Apr 2011 15:01

AW: 2 Bytes zu einem komprimieren
 
Klingt insgesammt irgendwie nach Seriennummer entwerfen oder so was in der Art.
Hab ich's getroffen? :stupid:

schwa226 15. Apr 2011 09:57

AW: 2 Bytes zu einem komprimieren
 
So ähnlich.
Das Byte Array representiert eine Unique ID des Systems. Z.B per MAC oder Festplattenseriennummer.

Die Länge kann nicht geändert werden. Es müssen 8 Bytes bleiben damit man mit älteren Version kompatibel bleibt.

Ürsprünglich war gar keine Checksum oder Infos in den 8 Bytes.
Dann ist einmal eine 2 Byte Checksum dazu gekommen. (Dadurch ist die mindest App-Version feststellbar)

Nun möchte ich die Infos noch erweitern. Z.B. um eine Author ID.

Author ID ich selbst: $11
Author ID irgend ein anderer: $12
...
..
.

Will man die Erkennung nun hinzufügen ist ja eine zusätzliche Checksum erforderlich. Ansonsten kann es Zufall sein, dass genau in Byte[4] ein $11 steht und fälschlicherweise eine Author ID angenommen wird. Also eine z.B. XOR Checksum der Bytes[0..4] in Byte[5] speichern. Stimmt diese kann man sagen das Byte[4] eine Author ID ist.

Ich habe zuerst auch überlegt ob man mit 8 Bit auskommt.
Das würde aber nur z.B. 2^4 IDs und für die Checksum 2^4 Bits zulassen.
16 IDs sind mir zuwenig. 128 IDs sollten es schon sein. Dann bleibt aber nur mehr 1 Bit für die Checksum -> nicht sicher genug.

Somit werden 2 Bytes benötigt.

Man könnte aber auch 7 Bits ID und 5 Bits Checksum = 12Bits (1 1/2 Bytes) verwenden.
Liese sich das dann in 8 Bit komprimieren?

Sir Rufo 15. Apr 2011 11:21

AW: 2 Bytes zu einem komprimieren
 
Um es nochmal ganz deutlich zu sagen:

Mit einem Byte kann man 256 Zustände beschreiben.
Wenn man auch genau 256 Zustände beschreiben möchte, dann kann man dieses nicht verkleinern, komprimieren, zusammendampfen, etc.
Es geht nicht, ohne Informationsverlust.

Transferleistung:

Wenn das bei einem Byte (8Bit) so ist, dann ist das bei 12Bit (mit voller Ausnutzung) genauso!

Möglicherweise wird das mit einem Quantencomputer gehen.
Dann hängt man die entsprechenden Nutzdaten an verschränkten Bits.
Somit könnte man die gesamte Lebensgeschichte mit 1Bit verschicken. :mrgreen:

gammatester 15. Apr 2011 12:19

AW: 2 Bytes zu einem komprimieren
 
Zitat:

Zitat von schwa226 (Beitrag 1095340)
So ähnlich.
Das Byte Array representiert eine Unique ID des Systems. Z.B per MAC oder Festplattenseriennummer.

Die Länge kann nicht geändert werden. Es müssen 8 Bytes bleiben damit man mit älteren Version kompatibel bleibt.

Da Du ja nicht aus der Unique ID die Infos zurückrechnen willst, bietet es sich doch an, aus den Informationen ein auf 8 Bytes abgeschnittenes Hash (zB mit SHA256) zu erzeugen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz