Quelqu’un peut-il vraiment lire le code informatique binaire ?


Absolument.

Il y a plusieurs années, ma femme a acheté des oreillers et une couverture chez ThinkGeek qui ressemblaient à ceci :


main-qimg-759376a3542d9bc5c696f7c4c09b3483.webp main-qimg-2bbe92306ff390bf118a16e2d46be469.webp

(Note : les images sont dues à Google Image Search.)

Un jour, je suis entré dans la chambre d'amis où nous les utilisions et j'ai remarqué un motif. J'ai réalisé que le code binaire qui y figurait était de l'ASCII, et j'ai commencé à lire à haute voix..... 'P'... 'I'... 'L'... 'L'... "Oh wow, cet oreiller dit en fait 'PILLOW'."

Ma femme, qui était aussi dans la pièce avec moi, a eu l'air un peu surprise : "Tu viens de lire ça ?" "Yep !"

(Et au cas où vous vous poseriez la question, la couverture se lit "blanket" en minuscules.)

L'ASCII en particulier est assez facile à lire sous forme binaire, du moins pour les chiffres et les caractères alphabétiques. (Punctuation, not so much.) Digits 0..9 all start with 0011 followed by 4 bits for the digit:

  • 00110000 is 0
  • 00110001 is 1
  • 00110010 is 2
  • 00111001 is 9.

Upper case alphabetic characters start with 0100 for A through O, and 0101 for P through Z. Or, another way of thinking about it, if you assign the numbers 1 through 26 to the letters A through Z, then the letters all reside at 0x40 plus the letter number.

  • 01000001 is A
  • 01000010 is B
  • 01001111 is O
  • 01010000 is P
  • 01011010 is Z

Lower case alphabetic characters work similarly, only starting with 0110 and 0111.

Once you remember those patterns, reading ASCII from a binary dump isn’t actually that hard at all. Try it on those photos above.

Of course, pure binary dumps aren’t really common. More commonly, we deal with hex dumps. I can still recognize machine languages for certain machines from their hex dumps. Par exemple, le musée de l'histoire de l'informatique à Mountain View possède une grande affiche avec un tas de code hexadécimal. Je l'ai identifié comme étant du code 8080 avant de remarquer la petite plaque à côté qui indiquait qu'il s'agissait d'un vidage hexadécimal d'une partie du BASIC original de Microsoft pour 8080. 🙂 Je peux aussi lire de petits bouts de 6502 de cette façon.

Et, de temps en temps, certaines séquences binaires / hexadécimales deviennent une sorte de "poignée de main secrète". Je me souviens d'avoir littéralement ri aux éclats en voyant ceci :

main-qimg-64b6ff785fb35935cb8dea02f3371a46.webp

(C'est ma propre photo, prise au Vintage Computing Festival.)

Si vous vous demandez pourquoi cela m'a fait rire, peut-être que ce code source pourrait vous donner un indice. (Faites défiler vers le bas pour LIRE.) Ou, si vous voulez juste la réponse, le gars de BMOW qui possède le disque l'explique sur son blog. Je n'ai pas eu besoin de l'explication... je l'ai reconnu à vue. 😀 On pourrait dire que Woz a laissé sa signature et son autographe.