% Conversion d'un nombre fractionnaire en virgule fixe sur 16 bits ND = 59.68 % input fractionnaire signé % --------------------------------------------------- aND = abs(ND) S = sign(ND) I = floor(aND) IB = dec2bin(I) bitI = (str2num(IB)~=0)*length(IB)+1 % format de la partie entière bitF = 16 - bitI % format de la partie fractionnaire if (S == -1) I = I+1 CI = bitcmp(I, bitI) + 1 CIB = dec2bin(CI, bitI) F = -(aND - I) CFB = dec2bin(round(F * 2^bitF), bitF) else CIB = dec2bin(I, bitI) F = aND - I CFB = dec2bin(round(F * 2^bitF), bitF) end % Résultat BIN = ['Fractionnaire binaire = ' CIB '.' CFB] B = [CIB CFB]; DD = bin2dec(B); Hexadecimal = dec2hex(DD)