Mathematique et informatique

Soyez le premier à donner votre avis sur cette source.

Vue 2 742 fois - Téléchargée 107 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

Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
Par default c'est signe.
oui c'est ca ((signed char)130) = -2
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

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 ?
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
(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)
Messages postés
24
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
23 août 2005

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
++
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

(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.