begin process at 2012 05 27 13:54:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > BINAIRE

BINAIRE


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :11/06/2003 Date de mise à jour :11/06/2003 15:09:23 Vu / téléchargé :2 248 / 50

Auteur : Skyman

Ecrire un message privé
Site perso
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 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

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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip STR2LONG - MAJ
Source avec Zip ASSEMBLEUR (EDITEUR/COMPILATEUR)
Source avec Zip MD5

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Commentaire de kelsey le 11/06/2003 17:31:22

pour retourner un tableau il faut que tu passes ton tableau en parametre ( ex ( int tab[]) ) et que tu retournes un pointeur sur l'adresse de debut de ton tableau ou son nom seulement ex:
return (tab)

Commentaire de JCDjcd le 12/06/2003 08:06:09

Sinon ta fonction peut retourner un pointeur sur un tableau que tu as mis en memoire par un 'malloc(sizeof(type)*nbElements)' !

Tu peut aussi faire 'int *tab' au lieu de 'int tab[]'. (aucune importance)

Commentaire de Skyman le 12/06/2003 10:16:27

Merci
C est des trucs auxquels j aurai jamais pense !!!
j ai toujours eu du mal avec les pointeurs ...

Commentaire de kelsey le 12/06/2003 10:29:06

juste une remarque: ton compilateur risque de ne pas apprécier le
" getche "

Commentaire de kelsey le 12/06/2003 10:29:12

juste une remarque: ton compilateur risque de ne pas apprécier le
" getche "

Commentaire de JCDjcd le 12/06/2003 10:31:05

Fais :
#include &lt;conio.h&gt;

Commentaire de kelsey le 12/06/2003 10:32:15

et ecris " getch(); " ca marcheras mieux! ;p

Commentaire de Skyman le 12/06/2003 10:37:42

weps !
g oublie de l enlever. :)

Commentaire de kelsey le 12/06/2003 10:41:41

lol

Commentaire de Skyman le 12/06/2003 10:47:49

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

et comment on fait pour s en servir sous VC++ ?

Commentaire de JCDjcd le 12/06/2003 11:49:07

Le 'e' en plus veut dire 'echo'.
getch() -&gt; attend une touche
getche() -&gt; attend une touche et affiche la caractere a l'ecran

Commentaire de Skyman le 12/06/2003 14:12:56

Ah ok !
Merci !

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales