Fonction d'émulation de la fonction Matlab int32()
Les versions Matlab et Scilab de la fonction int32() produisent des
résultats le plus souvent différents :
int32() travaille en congruence su rl'intervalle
("modulo"), alors que
la version Matlab mtlb_int32() sature et reste constante.int32()
tronque la partie fractionnaire, alors que la version Matlab
mtlb_int32() arrondit à l'entier le plus proche.Soit imin = -(2^16) = -2147483648 et
imax = 2^16 - 1 = 2147483647.
| x | int32(x) | mtlb_int32(x) |
|---|---|---|
| %nan | 0 | 0 |
| -%inf | imin | imin |
| imin-2 | imax-1 | imin |
| imin-1 | imax | imin |
| imin | imin | imin |
| imin-1 | imin-1 | imin-1 |
| -80.7 | -80 | -81 |
| -80.5 | -80 | -81 |
| -80.4 | -80 | -80 |
| 10.2 | 10 | 10 |
| 10.5 | 10 | 11 |
| 10.51 | 10 | 11 |
| imax | imax | imax |
| imax+1 | imin | imax |
| imax+2 | imin+1 | imax |
| imax+3 | imin+2 | imax |
| %inf | imax | imax |
![]() |
La fonction |