Intel " ", CVTSI2SD 3-4 ( 1 ) / Core2. .
, , . , . , , , ( !), .
( ) (CLZ) : 0 INT_MIN ( MSB ). 0 INT_MIN ( ). , , ; ( ). , 1-2 .
CLZ. , . ( CLZ (-x) CLZ (x), x < 0? , 1 .)
(1 , barrel shifter), , 1 (, 3 24- , № 26). - ( shrelter , waaaay , - OoO). , 3 .
. 4 (mantissa LSB, guard, round sticky) OTOH, ( 1). (RZ) // . -∞ (RMI) + ∞ (RPI) . ∞ 1 . , (RNE): x000... x011 → discard; x101... x111 → 1; 0100 → ; 1100 → add 1. , ( , ), 4 .
(, 1111 → 10000), . , ( 1), ( ) ( 2 CLZ , , 4). , 5 .
int float , float to int?
, . binary32 int32 (). , NaN, INF , , INT_MIN (-2147483648). :
: S - ; BE - ; M - (); . " " ( ) , : BE >= 158 ( NaN INF). "" , BE < 127 ( (x) < 1) {RZ, (x > 0 RMI), (x < 0 RPI)}; , BE < 126 ( (x) < 0,5) RNE; , BE = 126, value = 0 ( ) RNE. +1 -1 : BE < 127 : x < 0 RMI; x > 0 RPI; BE = 126 RNE. . 157-BE 2.
, abs (x) >= 1, BE >= 127, BE <= 157 ( abs (x) < 2 ** 31). 157-BE 1, . , , int → float, ( ) 3 . 2 .
(. ). 3 , . . , 31 .
, , x ( = 1). 4 .
, , Intel. , , ( , , ).
Berkeley Softfloat library - . ui32_to_f32.c. , .