Приветствую! Вот блин не как не даходит до меня форматы фиксированных точек (16:16) и плавающих. 1. Фиксированная точка: Ни как не могу дапетрить в каком формате находится дробная часть. Почитал книгу, и не фига не понял: 1080h - 16,5: Целая часть понятна, а вот дробная в десятичной равно 128. 1240h - 18,25: В десятичной 64 Но здесь используется формат 8:8, а мне нужен 16:16. 2. Плавающая точка: Че тама за мантисса? а экспонента че такое? пишу: pfloat dd 10.10 rfloat dd 13.18 получаю: 10.10 = 4121999Ah 13.18 = 4152E148h Где тут целая? Дробная? Кто нить двоичнику может обьяснить по русски?
Насчет первого - попробуй числа поделить на 256 - удивишься Насчет второго само число представляется в виде X*2^Y оно нормализовано (т.е старший разряд X должен быть 1) мантисса - само число (X) экспонента - это степень числа (Y) А вообще насчет вещественных чисел смотри стандарт IEEE
Ultrin Faern Насчет первого - удивился! 0,5 А я все думал че надо та делать. 256 это максимум что может быть в одном байте. Понятно! Спасибо! Great и Ultrin Faern так какая формула (10 ^ экспонента) или (2 ^ экспонента)? Ultrin Faern А ссылочку не дадите?
Arthur Всё предельно просто фиксированная точка означает, что количество знаков после запятой у тебя задано тобой одинаковым для всех твоих чисел, например можешь все "входящие" числа умножать на 100, а готовые делить на 100 и будет тебе фиксированная точка с 2мя десятичными разрядами. Но лучше работать с двоичной арифметикой, т.е. умножение деление заменить двоичными сдвигами влево - вправо на нужное тебе число разрядов например 16, хотя в схеме 24:8 сдвиг на 8 (24 бита целая часть, 8 бит дробная) в записи dd 13.18e5 число 5 это 10 ^ экспонента, но у hex числа которое скомпилируется асмом, и будет реально использоваться в FPU уже 2 ^ экспонента
По форматам IEEE нагуглил навскидку - http://pascal.sources.ru/datatype/floatype.htm http://en.wikipedia.org/wiki/Floating_point прикольная статья - http://yur.ru/science/computer/IEEE754.htm ЗЫ - Но вообще у меня дома книжка по целочисленной\плавающей арифметике - там все разжеванное...
Кстати, по поводу прикольной статьи - вначале автор утвеждает, что человечество использует максимум 10 знаков после запятой и 5 до, НО затем выбирает пример с векторами 10^40 степени... Гы!
Ultrin Faern Имелось ввиду 10 _значащих_ цифр. Да и то такая точность редко когда нужна и при машинном счёте последним нескольким разрядам верить всё равно нельзя (это зависит от используемого алгоритма счёта)