2010-08-23 19 views
-3

Je veux générer ces données séquentielles dans C:Comment générer une valeur hexadécimale de 8 octets?

data_packet[1] = 0706050403020100 (seed_value) 

suivant

data_packet[2] = 0f0e0d0c0b0a0908 

suivant sera les caractères suivants 8 hexadécimaux et ainsi de suite pour dire 100 octets. Comment puis-je le faire? Pouvons-nous le faire en utilisant un tableau de caractères?

+4

Et avec un 'Blockquote' non édité, personne ne vous invitera à leurs parties. –

+0

'char data [] =" 0706050403020100 ";'? C'est un peu difficile de décoder ce que vous demandez réellement. – nos

+0

non je veux générer des données séquentielles dans cet ordre. – Unicorn

Répondre

0

Vous ne voulez pas utiliser un tableau char car char peut ou non être signé (implémentation définie). Si vous jouez avec des nombres hexadécimaux de 0x00 à 0xFF, je recommande fortement d'utiliser un tableau unsigned char.

On dirait que les valeurs dans le tableau sont séquentielles, de 0 à N. Cela indique l'utilisation d'une boucle for.

Le tableau a une taille fixe de 8 octets. Hmmm, un autre bon candidat pour une boucle for.

La partie difficile de votre tâche est la direction des octets. Par exemple remplir le tableau à partir de la position 7 ou à la position 0?

Voici donc quelques pseudo-code pour vous aider sur:

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 

Pour plus de plaisir, changer la fonctionnalité de « mettre la« valeur » à « mettre la valeur aléatoire ».

Si vous voulez que nous écrivions réellement votre programme, faites le nous savoir. Je pourrais utiliser l'argent supplémentaire. :-)