Техника

как переводить нецелые числа из двоичной системы в восьмеричную

обычные числа я умею переводить, но вот с нецелыми числами возникла загвозтка, к примеру число в двоичной: 0,111 будет в восьмеричной 0,7 или просто 7?
7 оно не может быть полюбас, ибо должно быть меньше 1
а вот дальше надо смотреть:
0.111[2] = 2^(-1) + 2^(-2) + 2^(-3) = 4/8 + 2/8 + 1/8 = 7 * 8^(-1) = 0.7[8]
СС
Светлана Смола
94 820
Лучший ответ
простой пример приведу пусть у тебя есть число и оно хранится в памяти
и занимает 1 байт 8 бит
это 2 двоичных тетрады
к примеру возьмем число 5 оно занимает всего 3 бита даже не полную тетраду
так вот получается что если мы напишем 05 тут будет избыточность некоторая
так как это ноль не значащий но если мы переведем 05 в двоичную систему мы
получим как этот байт выглядит непосредственно в памяти
к примеру если написать 0505 мы поймем что число занимает ровно 2 байта а не один
это может быть 2 значения по байту или одно двубайтовое
С восьмиричной я бы не связывался системой потому что там полный байт не выходит
Нужно знать формат числа чтобы знать
обычно в таком виде хранится инфа
-1^s*m^q
q=p+n
s=знак числа
m- мантисса m>=1, m<2
q- характеристика состоит из порядка +смещение
поэтому ваши 0.111 это 1.11
но в таком случае вопрос будет стоять иначе это 7 или 70 или 700
а вот это зависит от длинны мантиссы
по сути если записать 1110 то это уже не 7 а 13 мы число на 2 умножили сместили на один бит влево