Contenu supprimé Contenu ajouté
Contenu remplacé par « Bonjour, je suis a la recherche d'un nouveau pseudo je vais donc créer un nouveau compte serrait'il possible de supprimer mon compte? »
Ligne 1 :
{|
Bonjour, je suis a la recherche d'un nouveau pseudo je vais donc créer un nouveau compte serrait'il possible de supprimer mon compte?
 
== [[Programmation_C/Types_de_base]] ==
Bonjour, voilà j'ai un petit souci avec cette page http://fr.wikibooks.org/wiki/Programmation_C/Types_de_base j'ai regardé dans plusieurs livres et sur internet, il y a des contradictions, des fois une variable char par-exemple est défini entre -127 à +127 et dans d'autre livre ou d'autre site ils disent autre chose c'est de -128 à +127 alors j'ai été demandé quoi mais d'après se qu'on m'a dit ca doit faire 255 pour un char et non 254, j'ai demandé à plusieurs personne les résultats sur les variable sur le site de wikibooks sont faux et ils m'ont dit que ca risquait d'induire des débutant en erreur, alors j'ai voulu rectifié cette page j'ai réajouté 1 partout comme on m'a dit que ca devait être, mais voilà on a annulé la modification, est ce qu'il y a une autre erreur que je n'ai pas bien compris peu être?
:Bonjour,
:Le tableau en question est valable pour toutes les représentations des entiers, que ce soit:
:* En Signe(0=+, 1=-) et valeur absolue (SVA)
:** Donc sur un octet (8 bits), un bit réservé au signe, les 7 autres pour la valeur absolue, il existe donc deux zéros possibles : +0 (0 0000000) et -0 (1 0000000)
:** Donc en positif l'intervalle est +0 .. +127 (128 valeurs), et en négatif -0 .. -127 (128 valeurs)
:* En complément à 1, les bits des nombres négatifs sont inversés. Les intervalles sont donc les mêmes que SVA car il y a également +0 (0000 0000) et -0 (11111111)
:* En complément à 2, il faut ajouter 1 à la représentation en complément à 1 des nombres négatifs. +0 reste donc 00000000, mais -0 devient donc 11111111+1 soit 00000000. Il n'y a donc qu'une seule représentation possible pour 0. Ce qui permet à -128 de pouvoir être représenté.
:Le tableau liste les intervalles communs (donc l'intersection) pour lister les entiers valides quelle que soit leur représentation.
:Plus loin dans la page, il y a le tableau concernant le complément à 2.
:-- ◄ [[Utilisateur:DavidL|'''D'''avid '''L''']] • [[Discussion_Utilisateur:DavidL|discuter]] ► 19 septembre 2011 à 16:50 (CEST)
::je vous remercie pour l'info, comme je maitrise pas bien le sujet je suis en train d'essayer de trouver ou de faire un petit code qui me permettrais de connaitre toute les valeurs aussi bien pour un char que un int etc... est ce que vous sauriez pas ou je peux allez pour trouver des info la dessus? car je ne sais pas par ou commencer pour créer ce code. je vous remercie d'avance.
:::c'est pas vous qui avez fais les vidéo sur netprof? lol vous portez le même prénom que lui :D
:::[[Utilisateur:stephane0981|stephane0981]]
::::*Ce n'est pas moi qui fait les vidéos de netprof mais il est vrai que mon prénom est assez courant.
::::*Pour le code de test en C sur les types, il y a <tt>sizeof(''le_type_ou_la_variable'')</tt> pour obtenir le nombre d'octets occupés (donc à multiplier par 8 pour obtenir le nombre de bits). Pour tester le domaine d'un type, il est possible d'utiliser une boucle en commençant par une valeur quelconque (0 par exemple) et en incrémentant (+1) à chaque itération, mais en conservant la valeur précédente. La boucle devant être arrêtée quand la nouvelle valeur devient inférieure ou égale à la précédente. À ce moment-là, cela signifie que l'on a dépassé le domaine des valeurs possible, le maximum étant donc la valeur précédente. La détermination de la valeur minimale utilise une boucle similaire, en décrémentant (-1) la valeur, jusqu'à ce que la nouvelle valeur devienne supérieure ou égale à la précédente.
::::*N'oubliez pas de signer à la fin de vos messages de discussion avec le bouton [[Image:button_sig.png]] ou en tapant deux tirets suivi de quatre tildes : <tt><nowiki>--~~~~</nowiki></tt>, ce qui donne ceci pour moi :
::::--&nbsp;◄&nbsp;[[Utilisateur:DavidL|'''D'''avid&nbsp;'''L''']]&nbsp;•&nbsp;[[Discussion_Utilisateur:DavidL|discuter]]&nbsp;► 20 septembre 2011 à 16:24 (CEST)
 
pour le moment j'ai réussi à faire ca, mais avec votre systeme de boucle que vous me parlez c'est possible d'avoir le domaine de valeur minimale et maximale?
 
<source lang="c">
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
long long i = 10;
 
printf("affichage %llu\n", i);
 
printf("La taille d'un char est de %d octets et de %d bits\n", sizeof(char), sizeof(char)*8);
printf("La taille d'un short est de %d octets et de %d bits\n", sizeof(short), sizeof(short)*8);
printf("La taille d'un int est de %d octets et de %d bits\n", sizeof(int), sizeof(int)*8);
printf("La taille d'un long est de %d octets et de %d bits\n", sizeof(long), sizeof(long)*8);
printf("La taille d'un long long est de %d octets et de %d bits\n", sizeof(long long), sizeof(long long)*8);
printf("La taille d'un float est de %d octets et de %d bits\n", sizeof(float), sizeof(float)*8);
printf("La taille d'un cdouble est de %d octets et de %d bits\n", sizeof(double), sizeof(double)*8);
printf("La taille d'un long double est de %d octets et de %d bits\nn", sizeof(long double), sizeof(long double)*8);
 
exit (EXIT_SUCCESS);
}
</source>
 
:Pour le domaine de valeur du type char par exemple :
<source lang="c">
// Boucle pour déterminer la valeur minimale pour char
char valeur, next = 0;
do
{
valeur = next;
next = valeur - 1;
}
while (next<valeur);
printf("La valeur minimale d'un char est %d\n", (int)valeur); // convertit en int pour l'affichage
 
// Boucle pour déterminer la valeur maximale pour char
char valeur, next = 0;
do
{
valeur = next;
next = valeur + 1;
}
while (next>valeur);
printf("La valeur maximale d'un char est %d\n", (int)valeur); // convertit en int pour l'affichage
</source>
:Cependant une telle boucle pour les types int, long, ou long long serait trop longue à exécuter.
:Et le domaine des types à virgules flottantes (float, double, long double) ne peut pas être déterminé de cette façon.
:--&nbsp;◄&nbsp;[[Utilisateur:DavidL|'''D'''avid&nbsp;'''L''']]&nbsp;•&nbsp;[[Discussion_Utilisateur:DavidL|discuter]]&nbsp;► 20 septembre 2011 à 19:17 (CEST)
 
 
<br><br><br><br>Je vous remercie ca fonctionne, j'ai du retirer le deuxième char qui donnait une erreur comme il y avait deux fois les même variables mais ca a l'aire de fonctionner, je vous remercie pour l'exemple.
<source lang="c">
#include <stdio.h>
 
int main()
{
// Boucle pour déterminer la valeur minimale pour char
char valeur, next = 0;
do
{
valeur = next;
next = valeur - 1;
}
while (next<valeur);
printf("La valeur minimale d'un char est %d\n", (int)valeur); // convertit en int pour l'affichage
 
// Boucle pour déterminer la valeur maximale pour char
do
{
valeur = next;
next = valeur + 1;
}
while (next>valeur);
printf("La valeur maximale d'un char est %d\n", (int)valeur); // convertit en int pour l'affichage
}
</source>