Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?



  1. #1
    T1tou

    Smile Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?


    ------

    Coucou tout le monde !!!

    Je suis de retour sur le forum pour vous demander de l'aide !

    J'ai un petit pépin sur mon code !

    J'ai tapé mon petit code tout en m'inspirant des cours sur internet et des programmes déjà tapé et en suis arrivé à ça :



    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main(){
    	//beginning//
    	int tab[8];
    	int x;
    	double q1, q2, r;
    	int i;
    
    	printf("Rentrer au clavier une valeur binaire, positive ou negative entre -128 & 127 : ");
    	scanf("%d", &x);
    
    	//treatment//
    	while (x<-128 || x>127){
    		//Verification//
    		printf("Erreur, impossible de coder ce nombre.");
    		printf("Veuillez, le re-saisir : ");
    		scanf("%d", &x);
    	}
    
    	for (i=0; x>0; i++){
    		//Traitement des valeurs positive//
    		tab[i]=x%2;
    		x= x/2;
    	}
    
    	r=x-2*q1;
    
    	for (i=0; x<0; i++){
    		//Traitement des valeurs positive//
    		x=abs(x);
    		tab[i]= x%2;
    		x= x/2;
    
    		for (i=0; i>=8; i++){
    			if(tab[i]==0){
    				tab[i]=1;
    			}else{
    				tab[i]=0;
    			}
    		}
    	}
    
    
    
    	//end//
    	printf("\nLe nombre binaire est :\n ");
    	for (i=i-1; i>=0; i--){
    		printf("%d\n", tab[i]);
    	}
    
    	system("PAUSE");
    	return 0;
    }
    Mon code ne contient "aucune" erreur du point de vue du compileur. Cependant celui-ci, n'aboutit pas à ce que je voudrais ! C'est à dire convertir un entier naturels en binaire 8bits signé (-128 à 127)....

    Pour ce qui est de la boucle "for (i=0; x<0; i++)", j'essaye simplement de donner au nombre sa forme positive en utilisant la valeur absolue (dans le cas de -4 = |-4|). Puis de remplacer avec la boucle "for (i=0; i>=8; i++)" les 0 par 1 et inversement.

    Merci de votre attention, en espérant une aide rapide

    -----

  2. #2
    T1tou

    Re : Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?

    UP !

    J'ai "améliorer" le code en ajoutant 2 boucles "if" dans le cas où le code serait sup ou inf à 0.

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main(){
    	//beginning//
    	int tab[8];
    	int x;
    	double q1, q2, r;
    	int i;
    
    	printf("Rentrer au clavier une valeur binaire, positive ou negative entre -128 & 127 : ");
    	scanf("%d", &x);
    
    	//treatment//
    	while (x<-128 || x>127){
    		//Verification//
    		printf("Erreur, impossible de coder ce nombre.");
    		printf("Veuillez, le re-saisir : ");
    		scanf("%d", &x);
    	}
    
    	if (x>0){
    		//Traitement des valeurs positive//
    		for (i=0; x>0; i++){
    		tab[i]=x%2;
    		x= x/2;
    		}
    	}
    
    	r=x-2*q1;
    
    	if (x<0){
    		//Traitement des valeurs négative//
    		for (i=0; x>0; i++){
    		x=abs(x);
    		tab[i]= x%2;
    		x= x/2;
    
    		for (i=0; i>=8; i++){
    			if(tab[i]==0){
    				tab[i]=1;
    			}else{
    				tab[i]=0;
    			}
    		}		
    		}
    	}
    
    
    	//end//
    	printf("\nLe nombre binaire est :\n");
    	for (i=i-1; i>=0; i--){
    		printf("%d\n", tab[i]);
    	}
    
    	system("PAUSE");
    	return 0;
    }

  3. #3
    pm42

    Re : Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?

    Tu as essayé avec l'outil de base du programmeur après l'éditeur et le compilo qui est le débugger ?

  4. #4
    T1tou

    Re : Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?

    Encore une UP !
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main(){
    	//beginning//
    	int tab[8];
    	int x, a;
    	double q1, q2, r;
    	int i;
    
    	printf("Rentrer au clavier une valeur binaire, positive ou negative entre -128 & 127 : ");
    	scanf("%d", &x);
    
    	//treatment//
    	while (x<-128 || x>127){
    		//Verification//
    		printf("Erreur, impossible de coder ce nombre.");
    		printf("Veuillez, le re-saisir : ");
    		scanf("%d", &x);
    	}
    
    	if (x>0){
    		//Traitement des valeurs positive//
    		for (i=0; x>0; i++){
    		tab[i]=x%2;
    		x= x/2;
    		}
    	}
    
    	if (x<0){
    		//Traitement des valeurs négative//
    		a=x*-1;
    		for (i=0; a>0; i++){
    		tab[i]= a%2;
    		a= a/2;		
    		}
    	}
    
    
    	//end//
    	printf("\nLe nombre binaire est :\n");
    	for (i=i-1; i>=0; i--){
    		printf("%d\n", tab[i]);
    	}
    
    	system("PAUSE");
    	return 0;
    }
    BOOM BOOM !!

  5. A voir en vidéo sur Futura
  6. #5
    Gustave19

    Re : Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?

    if (x<0){
    //Traitement des valeurs négative//
    for (i=0; x>0; i++){
    x=abs(x);
    tab[i]= x%2;
    x= x/2;

    Erreur de copier/coller de la première boucle... X ne sera jamais supérieur à 0 ici !

  7. #6
    T1tou

    Re : Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?

    Tu as essayé avec l'outil de base du programmeur après l'éditeur et le compilo qui est le débugger ?
    Alors pm42, j'ai essayé avec l'outil de bas du programmeur (éditeur + compileur). Débuguer ausshii !

    Erreur de copier/coller de la première boucle... X ne sera jamais supérieur à 0 ici !
    Oui justement ! j'ai vu l'erreur ! Et pour que ça soit plus simple à comprendre (mais un truc à rajouter en plus..), j'ai ajouté la variable "a". Qui prend la valeur absolue de x et continue avec la boucle "for" ^^

  8. #7
    T1tou

    Cool Re : Convertir un entier naturels en binaire en 8bits signé (-128 à 127) ?

    MAIS DU COUP !!!

    Finalement j'ai pu trouver la réponse !!!

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main(){
    	//beginning//
    	int tab[8];
    	int x, a, r;
    	double q1, q2;
    	int i, n;
    
    	for (i=0; i<8; i++){
    		tab[i]=0;
    	}
    
    	printf("Rentrer au clavier une valeur binaire, positive ou negative entre -128 & 127 : ");
    	scanf("%d", &x);
    
    	//treatment//
    	while (x<-128 || x>127){
    		//Verification//
    		printf("Erreur, impossible de coder ce nombre.");
    		printf("Veuillez, le re-saisir : ");
    		scanf("%d", &x);
    	}
    
    	if (x>0){
    		//Traitement des valeurs positive//
    		for (i=0; x>0; i++){
    		tab[i]=x%2;
    		x= x/2;
    		}
    	}
    
    	if (x<0){
    		//Traitement des valeurs négative//
    		a=x*-1;
    		r=1;
    
    		for (i=0; a>0; i++){
    		tab[i]= (a+r)%2;
    		a= (a+r)/2;		
    		}
    
    		for (i=0; i<8; i++){
    			if (tab[i]==0){
    				tab[i]=1;
    			}else{
    				tab[i]=0;
    			}
    		}
    
    	}
    
    
    	//end//
    	printf("\nLe nombre binaire est :\n");
    
    	for (i=7; i>=0; i--){
    		printf("%d\n", tab[i]);
    	}
    
    	system("PAUSE");
    	return 0;
    }
    éplucher et ré-éplucher ces cours servent (et demander un peu d'aide au prof, aushiiii) !!

    Merci pour tout et bonne journée/soirée à vous !!!

    Big fòs !!

Discussions similaires

  1. Transformer un tableau entier contenant des 1 et des 0 en une variable binaire
    Par Aurelsam dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 29/07/2013, 09h57
  2. comment convertir un fichier binaire (8bits -numérique) en un fichier .wav ?
    Par invite3cd28103 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 27/05/2012, 23h40
  3. l'équivalent d'un Nombre binaire signé !
    Par invited6f3801a dans le forum Électronique
    Réponses: 4
    Dernier message: 12/06/2011, 19h21
  4. Code VHDL pour conversion d'un entier en binaire
    Par invitea9f621f9 dans le forum Électronique
    Réponses: 1
    Dernier message: 25/04/2010, 14h56
  5. convertir un texte entier word en powerpoint
    Par inviteefef9cf5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 17/09/2006, 13h31