Получить дробную часть двоичного числа

Есть число 4,4. Должны получить число 5,75

Целую часть я нахожу правильно. Дробную пытаюсь найти.

У нас последние 4 бита это дробное число 1100 - его я получаю путём сдвигами. Затем ещё раз сдвигаю что бы цикл сработал только два раза.

получается 11.

В цикле я пытаюсь сделать вот такое

1х2^-1+1х2^-2

Но результат постоянно нулевой. Объясните пожалуйста что не так делаю

хотя бы 0,75 или 75 получить уже от этого отталкиваться буду

byte n = 0b01011100;
byte numerator = (byte)(n >> 4);
byte denominator = (byte)((n & 0b00001111) >> 2);
byte result = 0;
sbyte pow = -1;
 
for (int i = 2; i <= 3; i++)
{
    byte bit = (byte)(((denominator >> i) & 0x01));
    bit = (byte)(bit * Math.Pow(2, pow));
    result = (byte)(result + bit);
    pow--;
}
Console.WriteLine(result);

Ответы (1 шт):

Автор решения: Grundy

В цикле я пытаюсь сделать вот такое
1х2-1+1х2-2

В цикле операнды вычисляются отдельно. Каждый операнд меньше единицы. При обрезании числа меньше единицы до целого - получишь 0.

В итоге ты делаешь следующее

0 + 0
→ Ссылка