1

salut a tous je suis debutant en programmation et j'ai un petit probleme
voila en fait j'ai besoin d'une fonction C qui prend en parametre un tableau de char (de caracteres quoi) et qui renvoie un tableau de booleains correspandant au code ASCII de ces caracteres..


exemple: avec un tableau contenant "AA" la fonction retournerai un tableau contenant "0100000101000001" (car A=65=01000001)

ou a la rigeure un truc qui s'approche du resultat

merci pour votre aide

2

Pour quoi faire ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

ça ne s'appelle pas des booléens mais des chiffres binaires happy
et puis ton tableau de retour sera en fait lui aussi un tableau au moins d'octets (8 bit, car c'est ce que tu peux manipuler de plus petit), même si tu n'utilises qu'un bit sur les 8...

sinon, ben :
void bin_of_char (char src, unsigned char *dest) {
  int i;
  for (i = 7; i >= 0; i--) {
    dest[i] = src & 1;
    src >>= 1;
  }
}

(et tu dois passer en paramètre pour dest un tableau de taille au moins 8)
pour une chaîne complète, tu peux faire :
unsigned char *bin_of_chaine (char *chaine) {
  unsigned char *dest = malloc (strlen (chaine) * 8);
  unsigned char *ret = dest;
  for (; *chaine; chaine++) {
    bin_of_char (*chaine, dest);
    dest += 8;
  }
  return ret;
}

là ça te renvoie un pointeur alloué avec malloc, donc quand tu ne l'utilises plus tu dois le libérer avec free ().

Ceci dit je ne comprends pas non plus à quoi ça va te servir grin
Edit : bug de [ i ] :-\
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

4

Oui mais la représentation par un bête tableau est loin d'être la plus efficace dans tous les cas... Ca peut être plus efficace de passer par des macros pour accéder aux bits, par exemple. Tout dépend de l'utilisation qu'on en fait.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

Euh oui mais si tu veux utiliser des macros pour accéder aux bits il n'y a aucune conversion à faire, ils sont déjà là, les bits smile

mais effectivement tu peux faire :
#define accedebit(n, chaine) ((chaine [n >> 3] >> (~n & 7)) & 1)
pour accéder au nième bit de la chaîne (sauf erreur, tout à fait vraisemblable grin)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

6

Bah déjà faudrait mettre des parenthèses autour des noms des arguments de la macro, sinon ça marchera pas à coup sûr en faisant accedebit(n+1, chaine).
avatar
;)

7

Ni même en faisant accedebit(n++,chaine)...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

8

Oui mais ça, il aura beau mettre des (nom_variable), ça n'y fera rien.
avatar
;)

9

Oui, c'est bien ce que je dis : c'est loin d'être parfait... (et puis d'ailleurs les parenthèses ne sont jamais nécessaires pour "n++")

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

10

C'est pour ça qu'il y a les "statement expressions" en GNU C. Je ne comprends pas pourquoi le comité de standardisation du C n'en a pas voulu pour le C99...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Parce qu'il y a les fonctions inline (même si, sans templates, c'est moins expressif)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

12

"Ni même en faisant accedebit(n++,chaine)..."

surtout qu'avec ca, ca foirera, mais pas qu'a cause du manque de () triso
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina