[C] ecrire un entier en octet (avec n octets donnes)

ecrire un entier en octet (avec n octets donnes) [C] - C - Programmation

Marsh Posté le 01-04-2007 à 21:53:44    

Yop,
 
en fait je suis sur une fonction qui recoit deux entiers, le premiers correspond a un nombre aleatoire, le second correspond au nombre d'octet sur lequel je veux ecrire le permier nombre. Par exemple si j'ai comme premier argument '5' et comme deuxieme argument '4'. je dois ecrire l'entier 5 sur 4 octets.
 
donc : 0x0 0x0 0x0 0x5
 
Mais si j'ai l'entier 511 sur 4 octets ca doit me donner 0x0 0x0 0x1 0xFF.
 
Le probleme vient lorsqu'il faut coder.... comme d'habitude. donc please help me...
 
Thx :jap:
Sid.

Reply

Marsh Posté le 01-04-2007 à 21:53:44   

Reply

Marsh Posté le 01-04-2007 à 22:10:18    

en vitesse, et si j'ai bien compris ce que tu veux faire,
 
_si le nombre est supérieur à 256 ^ n -1, c'est pas possible
_sinon,
  _le truc à coder sur le dernier entier = nombre modulo 256
  _à coder sur l'avant dernier octet : ((nombre - nombre modulo 256)/256) modulo 256
  _etc...
 
En fait ton truc revient à un codage de nombre en base 256.


Message édité par fhr le 01-04-2007 à 22:13:42
Reply

Marsh Posté le 01-04-2007 à 22:20:57    

ouai, en gros c'est ca il me reste plus qu'a la coder.. il reste 40 min..

Reply

Marsh Posté le 01-04-2007 à 22:58:23    

c'est un projet à rendre à 23h pile ? :D

Reply

Marsh Posté le 01-04-2007 à 23:01:13    

ui ui

Reply

Marsh Posté le 01-04-2007 à 23:01:39    

C'est bon jai reussi, merci...

Reply

Marsh Posté le 02-04-2007 à 16:30:13    

sideo a écrit :

en fait je suis sur une fonction qui recoit deux entiers, le premiers correspond a un nombre aleatoire, le second correspond au nombre d'octet sur lequel je veux ecrire le permier nombre. Par exemple si j'ai comme premier argument '5' et comme deuxieme argument '4'. je dois ecrire l'entier 5 sur 4 octets.

 

Une idée pour démarrer...

Code :
  1. #include <stdio.h>
  2. int main (void)
  3. {
  4.    int nb_oct = 4;
  5.    int val = 511;
  6.    printf ("%0*X\n", nb_oct * 2, val);
  7.    return 0;
  8. }



Message édité par Emmanuel Delahaye le 02-04-2007 à 16:30:45

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed