Salut,
Je voulais juste savoir comment obtenir le code binaire d'un caractere en utilisant TPW
Merci d'avance.
Version imprimable
Salut,
Je voulais juste savoir comment obtenir le code binaire d'un caractere en utilisant TPW
Merci d'avance.
Diu,
Tu peux obtenir la valeur entière avec
Après, à toi de coder l'affichage en binaire si tu en as besoin. :)Code:
1
2
3
4
5
6
7
8
9
10
11
12 ... Var c : Char; n : Integer; ... c := 'h'; n := Ord(c); { voilà, n contient la valeur } ...
mais ord ça donne le code ASCII et moi je veux le code binaire comme pour 'A' : 01000001
Dio,
J'ai bien compris, tu as la valeur.
A toi de créer la chaine correspondant en base 2. :)
comment la créer ?
Bonjour
Si j'ai bien compris tu veux faire
caractere ------>code ascii --------->code binaire(fonction de conversion nombre en binaire)?
tu peux aussi jeter un coup d'oeil ici http://www.developpez.net/forums/sho...ght=code+ascii
@+
J'ai vraiment essayé de trouver une relation entre l'ascii qu'on obtient avec ord et le binaire d'un caractere mais j'ai pas trouvé .. chaque fois que je sors une relation concernant 4 ou 5 caracteres elle ne marche pas sur le reste alors peux tu me guider avec cette methode et clarifier plus car j'ai pas compris grand chose et désolé encore pour le dérangement
Diu,
A ce stade, il faut que tu précises ce que tu entends par "le binaire d'un caractere", car si ce n'est pas la chaine quie le représente, qu'est-ce ?
le code binaire d'un caractere ici c'est son code en base 2 sur 8 bits et le but c'est d'afficher le code binaire d'un seul carctere
Dio,
Alors je t'ai déjà donné la solution. Tu as la valeur numérique, il ne te reste qu'à créer une chaine de caractère représentant cette valeur en base 2.
Tu peux te servir des opérateurs shr et shl permettant respectivement de déplacer un bit vers la droite ou la gauche et de tester si le bit à la position "n" vaut 0 ou 1 (je crois que les opérateurs and et or fonctionnent aussi pour ça).
Mettons que tu ne veuilles afficher que les 8 chiffres binaires les plus à droite (les plus faibles) d'un entier :
Une autre façon de faire est de diviser itérativement par 2 et de regarder le résultat du mod jusqu'à ce que le nombre à diviser soit nul :Code:
1
2
3
4
5
6
7
8 for i:= 0 to 7 do begin res := (ton_nombre shr i) and 1; if (res) then write("1"); else write("0"); end;
Code:
1
2
3
4
5
6 while (ton_nombre <> 0) do begin r := ton_nombre mod 2; ton_nombre := ton_nombre div 2; write(r); end;