VG5000µ, jouer avec les nombres
Suite à l'article précédent, j'ai mis sur le dépôt GitHub un petit utilitaire Python qui reproduit les conversions entre la valeur du nombre et son codage en 4 octets.
Parfois, voir du code est plus simple qu'un long discours.
Et parce qu'on ne sait jamais trop quel sera la vie future du dépôt, voici le code des deux principales fonctions de l'outil.
import math
def get_byte(number):
"""Takes the current number, and returns the next byte encoding it with the reminder of the number to encode. """
number *= 256
result = int(number)
return result, (number - result)
def encode(number):
"""Gets a number, returns it's encoded four bytes (memory layout, so exponent at the end)."""
# If the number is zero, the encoding is immediate.
# In fact, only the exponent has to be 0.
if number == 0:
return [0, 0, 0, 0]
# Gets the sign from the number for later encoding …