float_bits float_i2f (int i){ if(i == 0) return 0; int sign = (i >> 31)<<31; int exp = bits_length(i&0x7fffffff) - 1; int frac = bits_mask(exp) & i; return (sign | ((exp + 127) << 23)) | frac; }
contributed < Benny1117Yen > 上述修改 int frac = (bits_mask(exp) & i) << (23 - E) 表示還要左移 23 - E 來將 frac 補到 23 bits。 不過還可以增加一些條件, 參考這份,改寫在底下連結 https://hackmd.io/@P86071244/Quiz7#測驗-2
Benny1117Yen
int frac = (bits_mask(exp) & i) << (23 - E)
23 - E
frac
23
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up