Gibt es eine Möglichkeit, eine willkürlich große Bigint in einer Bitsequenz zu speichern, nur später, um sie in eine Standard-Bigint-Struktur zu konvertieren?

cs.stackexchange https://cs.stackexchange.com/questions/128035

  •  29-09-2020
  •  | 
  •  

Frage

Ich versuche mir vorzustellen, sich eine Möglichkeit, einen Bigint in einen Bitstrom zu kodieren, so dass es buchstäblich nur eine Sequenz von Bits ist.Beim Decodieren dieses Bitstroms erstellen Sie dann die Standard-BigINT-Standard-Datenstruktur (Array von kleinen Ganzzahlen mit einem Zeichen).Wie könnten Sie den BigINT als Sequenz von Bits codieren, und wie würden Sie es entschlüsseln?Ich verstehe nicht, wie man die bitwiwigen Manipulationen ordnungsgemäß ausführt oder eine beliebige Zahl in Bits mit größer als 32 oder 64 kodiert. Wenn eine Sprache erforderlich ist, würde ich das in JavaScript tun.

Zum Beispiel ergreift dies Byte und wandelt sie in einen einzelnen Bitstrom um:

generasacodicetagpre.

Wie würden Sie das gleiche Dinge für willkürlich lange Bitsequenzen tun?

War es hilfreich?

Lösung

Sehen Sie sich Elias Delta oder Gamma-Codierung als Beispiel an.

Andere Tipps

Es gibt viele gemeinsame Kodierungen für willkürliche Ganzzahlen. Ich würde sagen, dass die am meisten verwendeten Darstellungen sind:

    .
  • Lengenden Datendaten, bei denen die Anzahl der Bytes / Wörter zuerst geschrieben wird, gefolgt von den Daten.
  • eine "Continuation Bit" -Registrierung. Wenn die Wortgröße b Bits ist, wird eine Ganzzahl in Gruppen von B-1 Bits aufgeteilt, wobei das hohe Bestellbit bezeichnet wird, ob ein anderes Byte folgt, das folgt oder nicht vorhanden ist.

Sie können diese mischen und anpassen. Der ASN.1 Grundkodierungsregeln sind Ein Fall, in dem im allgemeinen Fall das Längenfeld in der Basis 128 mit dem Kontinuierungsbit codiert ist. ASN.1 BER wird in vielen Netzwerkprotokollen wie VoIP, SNMP und LDAP sowie in verwendet Kryptographie , in der große Ganzzahlen vertreten, ist eine gemeinsame Sache.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top