Domanda

Sto codificando un smistamento di array di suffissi e questo algoritmo aggiunge un carattere Sentinel alla stringa originale. Questo personaggio non deve essere nella stringa originale.

Poiché questo algoritmo elaborerà i byte binari, esiste un carattere di byte speciale che posso assicurarmi che non troverò in nessun file binario? Se esiste, come posso rappresentare questo personaggio nella codifica C ++?

Sono su Linux, non sono sicuro che faccia la differenza.

È stato utile?

Soluzione

No non c'è. I file binari possono contenere ogni combinazione di valori di byte. Non li chiamerei "personaggi", perché sono dati binari, non (necessariamente) che rappresentano i caratteri. Ma qualunque sia il nome, possono avere qualsiasi valore.

Altri suggerimenti

È più come una domanda a cui dovresti rispondere a te stesso. Non sappiamo quali dati binari hai e quali caratteri possono essere lì e cosa non può. Se stai parlando di dati binari generici, potrebbe esserci qualche combinazione di bit e byte e personaggi, quindi non esiste un personaggio del genere.

Dall'altro punto di vista, stai parlando di stringhe. Che tipo di stringhe? Stringhe ascii? I codici ASCII hanno un intervallo molto limitato, ad esempio, quindi puoi usare 128, ad esempio. Alcuni vecchi protocolli usano Soh (\1) per scopi simili. Quindi potrebbe esserci un modo per aggirare se sai esattamente quali stringhe stai elaborando.

Per quanto ne so, l'array suffisso non può essere applicato a dati binari arbitrari (beh, può, ma non avrà alcun senso).

Un file potrebbe contiene solo bit. Gruppi di bit potrebbero essere interpretati come un carattere ASCII, numero di punti galleggianti, una foto in formato JPEG, qualsiasi cosa tu possa immaginare. L'interpretazione si basa su uno schema di codifica (come ASCII, BCD) che scegli. Se il tuo schema di codifica non riempie l'intera tabella dei possibili codici, potresti sceglierne uno per le tue purghi speciali (ad esempio le cifre potrebbero essere codificate ingenuamente su 4 bit, 2^4 = 16, quindi hai 6 parole in codice ridondanti).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top