J'utilise x86_64 Linux Assembly
et on me demande de mettre à 1 les trois bits les plus bas d'un caractère (à partir de l'entrée de l'utilisateur), puis d'imprimer le caractère résultant. Pour illustrerComment définir sur 1 les 3 bits inférieurs d'un personnage?
Input: b ; ASCII in binary: 01100010
Set the last 3 bits to 1:
01100010 -> 01100111
Output: g ; ASCII in binary: 01100111
D'après ce que je comprends, le caractère d'entrée est déjà considéré comme binaire dans l'assemblage. Donc, ma question est:
Y at-il un moyen d'obtenir la forme binaire du personnage? Si oui, je serais heureux si quelqu'un pouvait fournir un pseudocode.
Jusqu'à présent, la seule chose qui me vint à l'esprit était de convertir le caractère ASCII du caractère d'entrée en entier ->
convertir en binaire ->
ensemble à un des 3 bits inférieurs ->
passe de binaire en entier ->
convertir en chaîne ->
imprimer . Mais je n'ai pas trop réfléchi à ce sujet, car il est clair que ça a l'air assez fastidieux.
Montrez-nous ce que vous avez essayé, un [MCVE] pour démontrer. – t0mm13b
'bits' ou' bytes' - il n'y a pas de piqûres. Sauf si vous mordez quelque chose. – luk2302
@ t0mm13b Ma seule tentative a été celle que j'ai décrite plus haut sur la conversion du code ASCII en entier. Vous pouvez imaginer combien de lignes de code serait cet exemple (sans considérer la solution de contournement avec la partie set-to-one-the-lower-3-bits). C'est la raison pour laquelle je ne le publie pas. – Jazz