Kayan Noktalı Sayı Çevrim İşlemlerinin MATLAB ile Gerçeklenmesi

Aşağıda girilen gerçel sayıyı istenen tanımlanan üs ve çarpan bit uzunluklarına göre ikili kayan noktalı sayı formatına çeviren Float2bin fonksiyonu MATALB kodu verilmiştir. 

function binary_Number = Float2bin(Number, bit_e, bit_f)
 
if Number > 0
    binary_Number(1) = dec2bin(0);
else
    binary_Number(1) = dec2bin(1);
end
bias = 2^(bit_e-1) - 1;
e = floor(log2(abs(Number))) + bias;
binary_Number(2 : 1 + bit_e) = dec2bin(e);
 
f = Number / ((-1)^ binary_Number(1) * 2^(e-bias)) - 1;
for n_i = 1 : bit_f
    f = f * 2;
    if f < 1
        binary_Number(n_i + bit_e + 1) = dec2bin(0);        
    else
        f = f - 1;
        binary_Number(n_i + bit_e + 1) = dec2bin(1);
    end
   
end

İkili sayı formatında verilen sayının gerçel sayı formatınına çeviren bin2Float fonksiyonu MATLAB kodu aşağıda verilmiştir.

function Number = bin2Float(binary_Number, bit_e, bit_f)
 
e = 0;
for n_i = 2 :  bit_e + 1
    e = e + 2^(bit_e - n_i + 1) * bin2dec(binary_Number(n_i));
end
bias = 2^(bit_e-1) - 1;
 
f = 0;
for n_i = 1 : bit_f
    f = f + 2^(-n_i) * bin2dec(binary_Number(n_i + bit_e + 1));
end
 
Number = (-1)^bin2dec(binary_Number(1)) * 2^(e-bias) * (1 + f);

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir