Получить дробную часть двоичного числа
Есть число 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