Rechercher : dans
Par :

[ C ] transformer un char en byte?

Dernière réponse le 2 déc 2003 à 17:01:24 Nettogrof, le 1 déc 2003 à 18:14:59 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [ C ] transformer un char en byte? » dans :
Les variables en C++ VoirLes variables en C++ 1. Les différents types de variables 1.1 bool 1.2 char 1.3 unsigned short int 1.4 short int 1.5 unsigned long int 1.6 long int 1.7 int (16 bits) 1.8 int (32 bits) 1.9 unsigned int (16 bits) 1.10 unsigned int (32...
Transformer des colonnes en lignes dans un fichier VoirDifférents outils de Linux sont très doués pour travailler avec des lignes, mais pas avec des colonnes (c'est leur rôle) Sed, Awk, Grep, etc. Cependant, il peut arriver pour X raisons que vous ayez un fichier où les données sont à lire en...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

tafiscobar, le 1 déc 2003 à 20:24:09

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!!!

Répondre à tafiscobar

2

Nettogrof, le 1 déc 2003 à 21:53:32

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

Répondre à Nettogrof

3

tafiscobar, le 2 déc 2003 à 15:56:14

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!!!

Répondre à tafiscobar

4

 Nettogrof, le 2 déc 2003 à 17:01:24

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

Répondre à Nettogrof