0/5 (6 avis)
Vue 2 972 fois - Téléchargée 127 fois
#include <stdio.h> #include <conio.h> /* affiche une condition */ #define PrintCondition(cond) \ printf("La condition '%s' vaut '%s'\n", \ #cond, \ (cond) ? "TRUE" : "FALSE") int main(void) { unsigned char u_a = 250, u_b = 29, u_c = u_a + u_b; signed char s_a = 250, s_b = 29, s_c = s_a + s_b; printf("-------------------------------------------------\n"); PrintCondition(s_c == s_a + s_b); PrintCondition(u_c == u_a + u_b); getch(); return 0; }
1 juil. 2003 à 17:16
oui c'est ca ((signed char)130) = -2
1 juil. 2003 à 15:43
ok avec ça. et par défaut quand on déclare un char ou un int, c'est signé ou non signé ?
et le fait de convertir un char signé en non signée, si le non signé valait 130, ça va mettre -2 comme valeur ?
1 juil. 2003 à 12:55
Quand c'est non-signe les nombre negatif n'existe pas, donc (-1) en signe est code FF, donc (-1) non-signe est aussi code FF
Or FF en non-signe c'est 256 (en base 10)
En fait j'ai pris un exemple pour des char car c'est plus facile, un char c'est 1 octet, donc vaut 0 à 256 (en non-signe) et -128 à +127 (en signe)
1 juil. 2003 à 12:41
faut dire que je ne sais non plus la difference entre char siggne et non signe
++
1 juil. 2003 à 11:56
mais je ne comprends pas, quel est le comportement de l'ordinateur fasse à des nombres (ou des char) signéens et non signées ? quand est-ce qu'on peut remarquer des différences? je ne comprends pas trop pq tt d'un coup c'est plus que u_b + u_b ??
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.