OVH Cloud OVH Cloud

int et unsigned int

14 réponses
Avatar
Florent G
Bonjour,
voila je comprends pas. unsigned int utilise bien 4 octets pour stocker un
int et insigned int sur ma machine pourtant avec ce code la :

int main()
{
unsigned int nombre;

/*nombre = 0xffffffdd;
printf("%d\n", sizeof(unsigned int));
printf("%d %x\n", nombre, nombre);
*/
nombre = 4294967261;
printf("%d\n",sizeof(int));
printf("%d %x\n", nombre, nombre);
}

j'obtiens toujours -35 et ffffffdd.. pourquoi ca ?

4 réponses

1 2
Avatar
Florent 'flure' C.
Le Tue, 20 Jul 2004 23:09:29 +0200, Emmanuel Delahaye a écrit :

(SNIP)
bref, la vie n'est pas si simple que tu ne l'imagines.


au temps pour moi

--
Florent "flure" C.
Décrypter l'@ pour répondre
Coders don't die, they just JMP without RET !

Avatar
Jacti

Stephane Legras-Decussy avait soumis l'idée :
Il me semble que la définition des types en C était plutôt du genre :
char => un octet


non, un byte, c'est pas pareil...


Si. Un char et un byte ont exactement la même représentation en C. De
même, il est correct (bien que simpliste) d'écrire

"char => un octet"


Non. Il y a des machines (DPS8, par exemple) ou 1 byte = 9 bits
et un mot mémoire = 36 bits !
Sur une telle machine char n'entraîne pas octet, puisqu'un char est sur 9 bits
avec 1 bit de "garbage".

[snip]

Jacti



Avatar
Emmanuel Delahaye
Jacti avait écrit le 21/07/04 :

Stephane Legras-Decussy avait soumis l'idée :

non, un byte, c'est pas pareil...


Si. Un char et un byte ont exactement la même représentation en C. De
même, il est correct (bien que simpliste) d'écrire

"char => un octet"


Non. Il y a des machines (DPS8, par exemple) ou 1 byte = 9 bits
et un mot mémoire = 36 bits !
Sur une telle machine char n'entraîne pas octet, puisqu'un char est sur 9
bits avec 1 bit de "garbage".


D'où le '=>' (égal ou supérieur). Ok, il aurait mieux valu écrire '>='

--


Emmanuel



Avatar
Emmanuel Delahaye
Florent 'flure' C. a émis l'idée suivante :
Il me semble que la définition des types en C était plutôt du genre :
char => un octet


Oui, pour éviter toute confusion, il vaut mieux écrire '>=' que '=>'.

--


Emmanuel

1 2