Mathematique et informatique

0/5 (6 avis)

Vue 2 972 fois - Téléchargée 127 fois

Description

Voici un exemple de la difference entre une egalite dite mathematique et une egalite informatique !

He oui, une egalite mathematique vraie peu etre fausse en informatique !

Source / Exemple :


#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;
}

Conclusion :


Moral du l'histoire ?
He bien l'informatique peut des fois etre tres different des mathematiques !

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
1 juil. 2003 à 17:16
Par default c'est signe.
oui c'est ca ((signed char)130) = -2
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
1 juil. 2003 à 15:43
si c'est un cube, c juste qu'ils ont coupé un bout de l'arrête avant haut droite, du coup on voit l'arrète du fond comme si elle était devant, ce qui donne ce bel effet d'optique)

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 ?
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
1 juil. 2003 à 12:55
(Pour le cube, cez n'en est pas un puisque si vous faites un zoom vous verrez qu'il est pas possible a construire )

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)
remanv69 Messages postés 24 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 23 août 2005
1 juil. 2003 à 12:41
Je debute et je ne comprend pas bien la demarche de ton programme mathematique / informatique
faut dire que je ne sais non plus la difference entre char siggne et non signe
++
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
1 juil. 2003 à 11:56
(on a un cube comme ds ta signature en classe, très bien fait ^^)

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 ??
Afficher les 6 commentaires

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.