Представление чисел с плавающей точкой и целых чисел в двоичном - PullRequest
1 голос
/ 10 марта 2012

Извините за ранее не так ясные вопросы, Я должен был задать свой вопрос, а не просто опубликовать вопрос.

просто для пояснения, скажем, это 3-битное число с плавающей запятой и 3-битное целое число, поэтому для int это

2^3, [_ _ _ _ ], ex: 8=[1 0 0 0].

А как насчет поплавка? [ _ _ _ _ . _ _ _ _] Например, я могу представить 8,5 как

 [1 0 0 0. 1 0 0 0]

Правильно ли я написал, я понял, как представить целочисленное значение, учитывая, сколько битов должно быть, но для числа с плавающей запятой это число битов, одинаковых до и после десятичного знака.

1 Ответ

2 голосов
/ 10 марта 2012

3-битное значение с плавающей запятой должно иметь максимум 3 бита, что делает его, если не невозможно, совершенно непрактичным. Вот почему из определения представления с плавающей точкой (IEEE-754)

Плавающая точка состоит из конечных чисел, которые могут быть либо основанием 2 (двоичное), либо основанием 10 (десятичное). Каждое конечное число описывается тремя целыми числами: s = знак (ноль или единица), c = значение и (или «коэффициент»), q = показатель степени. В вашем случае это означает, что у вас есть знаковый бит (бит 1), значимое (бит 2) и показатель степени (бит 3). Диапазон для этого бесполезен.

Вы не объединяете серии из трех битов, потому что с плавающей запятой - это заранее заданная фиксированная длина, с которой все заранее договариваются, по крайней мере, в том смысле, в каком вы имеете в виду.

Есть примеры того, как сделать расширенную плавающую точку в источнике GSL:

http://www.gnu.org/software/gsl/

Десятичные числа также могут быть представлены другими форматами, такими как: BCD

http://en.wikipedia.org/wiki/Binary-coded_decimal

Конечная точка: вы МОЖЕТЕ сделать 3-битные числа FP, а затем связать их вместе, если хотите сделать большие числа. Они просто больше не будут 3-битными: 6-битными 12-битными и т. Д.

...