Come generare 8 byte valore esadecimale? [chiuso]
Domanda
voglio generare questi dati sequenziali in C:
data_packet[1] = 0706050403020100 (seed_value)
successivo
data_packet[2] = 0f0e0d0c0b0a0908
Avanti saranno i prossimi caratteri esadecimali 8 e così via per esempio 100 byte. Come posso farlo? Possiamo farlo utilizzando array di caratteri?
Soluzione
Non si vuole utilizzare un array char
dal char
può o non può essere firmato (implementazione definito). Se stai giocando con i numeri esadecimali da 0x00 a 0xFF, vi consiglio vivamente di utilizzare una matrice unsigned char
.
appare come i valori nella matrice sono sequenziali, da 0 a N. Ciò indica utilizzando un ciclo for
.
La matrice è una dimensione fissa di 8 byte. Hmmm, un altro buon candidato per un ciclo for
.
La parte più difficile del vostro compito è la direzione dei byte. Ad esempio sono riempimento nella matrice a partire dalla posizione 7 o nella posizione 0?
Così qui è un codice pseudo per aiutarvi a lungo:
For each value from 0 to N do:
begin
for array position from 0 to 7 do: // or from 7 to 0
put 'value' into the array at 'position';
call function to process the array.
end
Per più divertente, cambiare la funzionalità di " 'valore' put" a "mettere valore casuale".
Se si vuole di scrivere in realtà il vostro programma, fatecelo sapere. Ho potuto utilizzare il denaro extra. : -)