[ C ] transformer un char en byte?
Fermé
Nettogrof
Messages postés
521
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
8 décembre 2005
-
1 déc. 2003 à 18:14
Nettogrof Messages postés 521 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 décembre 2005 - 2 déc. 2003 à 17:01
Nettogrof Messages postés 521 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 décembre 2005 - 2 déc. 2003 à 17:01
Bonjour,
Je me pose une question, j'ai un char que j'aimerais transformer en binaire.
Exemple j'ai le caractère f qui vaut en hex 66, donc j'aimerais avoir : 01100110.
Est-ce que vous connaissez une méthode simple?
(développement par Visual C++, mais je ne fais que du C)
Merci d'avoir au moins lu mon problème...
Nettogrof tseb era seiromem emoS
Je me pose une question, j'ai un char que j'aimerais transformer en binaire.
Exemple j'ai le caractère f qui vaut en hex 66, donc j'aimerais avoir : 01100110.
Est-ce que vous connaissez une méthode simple?
(développement par Visual C++, mais je ne fais que du C)
Merci d'avoir au moins lu mon problème...
Nettogrof tseb era seiromem emoS
A voir également:
- C char to byte
- Malware byte - Télécharger - Antivirus & Antimalwares
- Qwerty to azerty - Guide
- Video to video - Télécharger - Conversion & Codecs
- Majuscule to minuscule - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
4 réponses
Nettogrof
Messages postés
521
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
8 décembre 2005
672
1 déc. 2003 à 21:53
1 déc. 2003 à 21:53
Merci pour ta réponse,
Mais mon probleme demeure, je vais essayer d'être plus clair.
par exemple j'ai en char : ctes
en hex : 63 74 65 73
en binaire : 0110 0011 0111 0100 0110 0101 0111 0011
et par exemple je voudrais enlever un bit à tout les 4.
donc 011 001 011 010 011 010 011 001
qui donne en hex : 65 A6 99 qui est loin de mon hex de départ.
Est-ce qu'en C il est possible de faire un tableau de bit ou un tableau de boolean?
La raison , c'est que j'ai un programme qui après d'avoir modife une image, il rajoute des "0" pour complété le dernier octet et moi je veux les enlever.
Nettogrof tseb era seiromem emoS
Mais mon probleme demeure, je vais essayer d'être plus clair.
par exemple j'ai en char : ctes
en hex : 63 74 65 73
en binaire : 0110 0011 0111 0100 0110 0101 0111 0011
et par exemple je voudrais enlever un bit à tout les 4.
donc 011 001 011 010 011 010 011 001
qui donne en hex : 65 A6 99 qui est loin de mon hex de départ.
Est-ce qu'en C il est possible de faire un tableau de bit ou un tableau de boolean?
La raison , c'est que j'ai un programme qui après d'avoir modife une image, il rajoute des "0" pour complété le dernier octet et moi je veux les enlever.
Nettogrof tseb era seiromem emoS
tafiscobar
Messages postés
1277
Date d'inscription
jeudi 7 décembre 2000
Statut
Contributeur
Dernière intervention
26 février 2009
177
2 déc. 2003 à 15:56
2 déc. 2003 à 15:56
les booleens n'existent pas en C, on n'y remedie en utilisant des enums coe ceci enum bool { VRAI = 1, FAUX = 0} ou en utilisant les macros definitions (#define).
On peut manipuler des bits en C, mais je trouve q c'est assez complique(j'ai jamais fait), en fait, ds tout ce que j'ai lu, on ne peut declarer des bits directement(kernighan et ritchie et aussi J.P Braquelaire). Les champs de bits(par contre seulement int ou unsigned), st des champs de structure(ou union), attend je te donne un exemple, c'est plus clair :
struct cell {
int fix : 3; //decare que fix a pour taille 3bits
int res : 14; //14bits};
//la declaration ne p se faire qu'a l'interieur d'une structure, et c'est comprehensible.
Mais tu sais q tu peux manipuler les bits en utilisant les 6 operateurs sur les bits : &, |, >>, <<, ~, ^
ou bien tu peux faire ceci, ce n'est pas correct a mes yeux, mais on p essayer :
typedef struct inutile {
unsigned bit : 1;
} inutile;
inutile tab [32];
j'espere t'avoir aide.
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
On peut manipuler des bits en C, mais je trouve q c'est assez complique(j'ai jamais fait), en fait, ds tout ce que j'ai lu, on ne peut declarer des bits directement(kernighan et ritchie et aussi J.P Braquelaire). Les champs de bits(par contre seulement int ou unsigned), st des champs de structure(ou union), attend je te donne un exemple, c'est plus clair :
struct cell {
int fix : 3; //decare que fix a pour taille 3bits
int res : 14; //14bits};
//la declaration ne p se faire qu'a l'interieur d'une structure, et c'est comprehensible.
Mais tu sais q tu peux manipuler les bits en utilisant les 6 operateurs sur les bits : &, |, >>, <<, ~, ^
ou bien tu peux faire ceci, ce n'est pas correct a mes yeux, mais on p essayer :
typedef struct inutile {
unsigned bit : 1;
} inutile;
inutile tab [32];
j'espere t'avoir aide.
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
Nettogrof
Messages postés
521
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
8 décembre 2005
672
2 déc. 2003 à 17:01
2 déc. 2003 à 17:01
Merci bcp,
c'est ce que je pensais, car après tant de recherche, je ne voyais toujours pas comment faire "du bit à bit".
Merci encore..
Nettogrof tseb era seiromem emoS
c'est ce que je pensais, car après tant de recherche, je ne voyais toujours pas comment faire "du bit à bit".
Merci encore..
Nettogrof tseb era seiromem emoS
tafiscobar
Messages postés
1277
Date d'inscription
jeudi 7 décembre 2000
Statut
Contributeur
Dernière intervention
26 février 2009
177
1 déc. 2003 à 20:24
1 déc. 2003 à 20:24
un char c'est un unsigned int, et donc, tu le castes en unsigned int et tu fais ta representation binaire sur cet int.
ex : representation_binaire((unsigned ) 'f');
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
ex : representation_binaire((unsigned ) 'f');
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!