Dovendo implementare algoritmi di riconoscimento per il posizionamento, una domanda che ci siamo posti è come vengano rappresentati i numeri con virgola su questa piattaforma. RPi adotta come processore il SoC BCM2835 (architettura ARMv6) che integra un processore della famiglia ARM11 ed un coprocessore multimediale. Il processore supporta i calcoli floating point nella sotto-architettura Vector Floating-point v2 (VFPv2), implementata in hw in modo da garantire un’elevata velocità di esecuzione.
Esiste uno standard che definisce come devono essere rappresentati i numeri per il calcolo in virgola mobile: IEEE 754. VFPv2 supporta due tipologie di numeri appartenenti a questo standard:
- Binary32, single-precision (in C float);
- Binary64, double-precision (in C, double).
Nella rappresentazione single-precision floating point:
- la mantissa è costituita da 23 bits (+1 relativo l’intero per i numeri normalizzati);
- l’esponente da 8 bits (il range dell’esponente è compreso tra -126 e 127).
Nella rappresentazione double-precision floating point:
- la mantissa è costituita da 53 bits (+1);
- l’esponente da 11 bits (il range dell’esponente è compreso tra -1022 e 1023).