Ho bisogno di accelerare un programma per Nintendo DS che non ha una FPU, quindi ho bisogno di cambiare la matematica in virgola mobile (che è emulata e lenta) in virgola fissa.
Come ho iniziato, ho cambiato i float in ints e ogni volta che ho avuto bisogno di convertirli, ho usato x >> 8 per convertire la variabile punto fisso x nel numero reale e x << 8 per convertire in punto fisso. Presto ho scoperto che era imansible tenere traccia di ciò che doveva essere convertito e ho anche capito che sarebbe stato difficile modificare la precisione dei numeri (8 in questo caso).
La mia domanda è: come dovrei renderlo più facile e veloce? Dovrei creare una class FixedPoint, o semplicemente un typedef di FixedPoint8 o una struct con alcune funzioni / macro per convertirle, o qualcos’altro? Dovrei inserire qualcosa nel nome della variabile per mostrare che è un punto fisso?