Binaire

Soyez le premier à donner votre avis sur cette source.

Vue 3 097 fois - Téléchargée 82 fois

Description

Voici des petites fonction pour l'utilisation des valeurs binaires.
Quelques ptites fonctions :
void entier_octet(); // int -> bin
void octet_entier(); // bin -> int
void octet_inverser(); // inverser ( 1 -> 0 ; 0 -> 1 )
void octet_decaler(int decalage); // decalage de x

J'ai utilise des variables publique parce que je sais pas comment retouner un tableau ...
Si qqn le sait, un peu d'aide n'est pas de refus.
Et pour le decalage j'ai code comme un barbare avec un switch(), si qqn la aussi a le courage de creer une fonction (j avais la flemme ;) sans switch (ce qui serait utile pour les valeur binaires qui ont plus ou moins de 8 bits).

On peut facilement remplacer le nombre de bits avec un #define.

Source / Exemple :


#include <stdio.h>

int entier = 128;
int octet[9];
int i;

void entier_octet();
void octet_entier();
void octet_inverser();
void octet_decaler(int decalage); 
void octet_afficher();
void entier_afficher();

main(int argc, char *argv[])
{

    entier_octet();
    
    octet_afficher();
        
//  octet_decaler(4);
//  octet_inverser()
    
	octet_entier();

    entier_afficher();
    
    getche();

	return 0;

}

void octet_afficher(){

	for(i = 1 ; i <= 8; i++){
        printf("%d",octet[i]);
	}
    printf("\n");
    
}

void entier_afficher(){

    printf("%d",entier);
    printf("\n");

}

void entier_octet(){

	if((entier / 128) < 1) {octet[1] = 0;}else{octet[1] = 1; entier = entier - 128;}
	if((entier / 64) < 1)  {octet[2] = 0;}else{octet[2] = 1; entier = entier - 64;}
	if((entier / 32) < 1)  {octet[3] = 0;}else{octet[3] = 1; entier = entier - 32;}
	if((entier / 16) < 1)  {octet[4] = 0;}else{octet[4] = 1; entier = entier - 16;}
	if((entier / 8) < 1)   {octet[5] = 0;}else{octet[5] = 1; entier = entier - 8;}
	if((entier / 4) < 1)   {octet[6] = 0;}else{octet[6] = 1; entier = entier - 4;}
	if((entier / 2) < 1)   {octet[7] = 0;}else{octet[7] = 1; entier = entier - 2;}
	if((entier / 1) < 1)   {octet[8] = 0;}else{octet[8] = 1;}
	
}

void octet_entier(){

	entier = octet[1]*128+octet[2]*64+octet[3]*32+octet[4]*16+octet[5]*8+octet[6]*4+octet[7]*2+octet[8]*1;
	
}

void octet_inverser(){

	octet[1] = !octet[1];
	octet[2] = !octet[2];
	octet[3] = !octet[3];
	octet[4] = !octet[4];
	octet[5] = !octet[5];
	octet[6] = !octet[6];
	octet[7] = !octet[7];
	octet[8] = !octet[8];
	
}

void octet_decaler(int decalage){

    int octet_temp[9];
    
	octet_temp[1] = octet[1];
	octet_temp[2] = octet[2];
	octet_temp[3] = octet[3];
	octet_temp[4] = octet[4];
	octet_temp[5] = octet[5];
	octet_temp[6] = octet[6];
	octet_temp[7] = octet[7];
	octet_temp[8] = octet[8];

	switch(decalage){
		case 0:
			octet[1] = octet_temp[1];
			octet[2] = octet_temp[2];
			octet[3] = octet_temp[3];
			octet[4] = octet_temp[4];
			octet[5] = octet_temp[5];
			octet[6] = octet_temp[6];
			octet[7] = octet_temp[7];
			octet[8] = octet_temp[8];
			break;
		case 1:
			octet[1] = octet_temp[2];
			octet[2] = octet_temp[3];
			octet[3] = octet_temp[4];
			octet[4] = octet_temp[5];
			octet[5] = octet_temp[6];
			octet[6] = octet_temp[7];
			octet[7] = octet_temp[8];
			octet[8] = octet_temp[1];
			break;
		case 2:
			octet[1] = octet_temp[3];
			octet[2] = octet_temp[4];
			octet[3] = octet_temp[5];
			octet[4] = octet_temp[6];
			octet[5] = octet_temp[7];
			octet[6] = octet_temp[8];
			octet[7] = octet_temp[1];
			octet[8] = octet_temp[2];
			break;
		case 3:
			octet[1] = octet_temp[4];
			octet[2] = octet_temp[5];
			octet[3] = octet_temp[6];
			octet[4] = octet_temp[7];
			octet[5] = octet_temp[8];
			octet[6] = octet_temp[1];
			octet[7] = octet_temp[2];
			octet[8] = octet_temp[3];
			break;
		case 4:
			octet[1] = octet_temp[5];
			octet[2] = octet_temp[6];
			octet[3] = octet_temp[7];
			octet[4] = octet_temp[8];
			octet[5] = octet_temp[1];
			octet[6] = octet_temp[2];
			octet[7] = octet_temp[3];
			octet[8] = octet_temp[4];
			break;
		case 5:
			octet[1] = octet_temp[6];
			octet[2] = octet_temp[7];
			octet[3] = octet_temp[8];
			octet[4] = octet_temp[1];
			octet[5] = octet_temp[2];
			octet[6] = octet_temp[3];
			octet[7] = octet_temp[4];
			octet[8] = octet_temp[5];
			break;
		case 6:
			octet[1] = octet_temp[7];
			octet[2] = octet_temp[8];
			octet[3] = octet_temp[1];
			octet[4] = octet_temp[2];
			octet[5] = octet_temp[3];
			octet[6] = octet_temp[4];
			octet[7] = octet_temp[5];
			octet[8] = octet_temp[6];
			break;
		case 7:
			octet[1] = octet_temp[8];
			octet[2] = octet_temp[1];
			octet[3] = octet_temp[2];
			octet[4] = octet_temp[3];
			octet[5] = octet_temp[4];
			octet[6] = octet_temp[5];
			octet[7] = octet_temp[6];
			octet[8] = octet_temp[7];
			break;
		case 8:
			octet[1] = octet_temp[1];
			octet[2] = octet_temp[2];
			octet[3] = octet_temp[3];
			octet[4] = octet_temp[4];
			octet[5] = octet_temp[5];
			octet[6] = octet_temp[6];
			octet[7] = octet_temp[7];
			octet[8] = octet_temp[8];
			break;
	}

}

Conclusion :


Bon Code ...

.:: SkyMan ::

URL : http://www.skyweb.t2u.com/

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
24
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
26 septembre 2003

Ah ok !
Merci !
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
Le 'e' en plus veut dire 'echo'.
getch() -> attend une touche
getche() -> attend une touche et affiche la caractere a l'ecran
Messages postés
24
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
26 septembre 2003

c est koi la deifference entre getche() et getch() ???

et comment on fait pour s en servir sous VC++ ?
Messages postés
35
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
11 décembre 2004

lol
Messages postés
24
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
26 septembre 2003

weps !
g oublie de l enlever. :)
Afficher les 12 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.