Представление типа float в двоичной системе
Подскажите пожалуйста как представляеться переменная с плавающей точкой в двоичной системе, ведь в памяти SRAM нету "точки". Я понимаю, что ее положение может указывать еще одна переменная, но когда отлаживаеш в AVR4, там указываеться только адрес переменной, когда смотришь на адрес, то видешь совсем не то число которое задал. Переменная flot занимает 4 байта, я так понял, что в ячейке указанной AVR указан начальный адрес. Вообщем, подскажите как оно представляеться. 
- Реклама
тип float использует 32 битный(4 байт) формат стандарта IEEE с 8-разрядной экспонентой, 23 разрядной мантисой и 1-м знаковым битом. Как конкретно они там расположены я не знаю. представление получается такое например 221e2 т.е. 221*10^2 221-мантисса, 2-экспонента.
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
А где делся еще один бит: 32-8=24, а не 23? Наверное под знак... Вообщем можно сказать, что если число 12,064 представлять таким образом, то получиться 0,12064*10^(2). Тоесть используеться один регистр для представления экспоненты, а остальные три для мантисы. Осталься только вопрос один, почему по заданому адресу в АВР нету сходств между числами, ведь если там и представлена мантиса, то оно должно сходиться, только без запятой.
Последний раз редактировалось factorial Вс янв 21, 2007 22:36:58, всего редактировалось 1 раз.
- Сообщения: 568
- Зарегистрирован: Ср янв 10, 2007 19:15:51
Cделайте в CVAVR например и посмотрите АСМ листинг и что происходит в симуляторе - например VMLAB. Можно использовать готовый шаблон - http://www.radiokot.ru/forum/viewtopic.php?t=2273
Я сейчас и использую паралельно компилятор CodeVision и симулятор AVR4. Только чето немогу найти, где там предсталяеться экспонента., ну то ладно, еще поищу. А по представлению числа я тут коечто надыбал на сайте http://forstu.narod.ru/edu/lekcii/infa/ ... comp_5.htm
- Реклама
- Сообщения: 568
- Зарегистрирован: Ср янв 10, 2007 19:15:51
будет время и желание попробуйте VMLAB.factorial писал(а):Я сейчас и использую паралельно компилятор CodeVision и симулятор AVR4. Только чето немогу найти, где там предсталяеться экспонента.


