
La funzione uint32() di Scilab
La funzione uint32() è utilizzata per convertire un numero o un array di numeri in un tipo di dati unsigned integer a 32 bit.
uint32(x)
Dove x è un singolo valore numerico o un array di numeri.
La funzione restituisce l'equivalente integer unsigned a 32 bit.
Cos'è un intero a 32 bit unsigned? E' un numero intero senza segno rappresentato con 32 bit. Sapendo che un bit assume due valori, zero e uno, questo significa che puoi rappresentare solo valori non negativi da 0 a 2^32 ossia da 0 a 4.294.967.295.
L'uso di base della funzione è piuttosto semplice. Facciamo un esempio pratico.
Assegna un numero decimale alla variabile "num".
num = 123.456;
Poi converti la variabile in un intero a 32 bit senza segno usando la funzione uint32()
uint32(num)
La funzione tronca qualsiasi valore decimale e restituisce il numero intero 123.
123
Cosa accade se il numero da convertire è troppo grande o troppo piccolo?
Se il numero è più grande del valore massimo (232-1), la funzione usa la logica dell'aritmetica modulare e continua il computo a partire dal valore minimo (0)
uint32(2^32+1)
ans =
1
Se invece il numero è più piccolo del valore minimo (0), ossia se è un numero negativo, la funzione continua il conteggio a partire dal valore massimo (232-1).
uint32(0-1)
ans =
4294967295
E ovviamente la funzione uint32() può convertire anche un array di valori numerici.
Ad esempio, definisci un array con tre valori decimali.
A=[2.3 3.7 4.9]
Poi converti l'array con la funzione uint32()
uint32(A)
In questo caso, il risultato è un array con tutti gli elementi interi.
ans =
2 3 4
Perché utilizzare uint32()?
Gli interi a 32 bit senza segno occupano meno memoria rispetto ad altri tipi di dati come i numeri in virgola mobile (float) o gli interi a 64 bit.
Inoltre, in molte applicazioni la rappresentazione dei numeri come interi a 32 bit è più che sufficiente.
Tuttavia, ricorda che la conversione implica un troncamento della parte decimale. Pertanto, il passaggio agli interi a 32 bit implica anche una perdita di informazione nei calcoli.