Новый номер с плавающей точкой

0

я хочу создать новый тип float размером 128 бит, показатель будет иметь 4 байта (32-разрядный), а у фракции будет 12-байтовый (96-разрядный), как я могу сделать этот тип в [ CN10], где я смогу выполнять ввод, вывод, +, -, *,/операций.

[Я думаю о классе c++, но я не могу понять, как я буду бороться между экспонентой и фракцией с указанной длиной]

Я пробовал "bitet" std class, но он имеет огромный размер по сравнению с тем, что мне нужно, например, "std :: bitset <16> foo;" укажите размер 8 байтов.

Какие-либо предложения !

  • 4
    new char [16], и у вас есть битовое поле длиной 128 бит.
  • 0
    '"std :: bitset <16> foo;" дать размер 8 байт. Вы проверили размер указателя? Покажите код пожалуйста!
Показать ещё 3 комментария
Теги:

1 ответ

1
Лучший ответ

Вы должны создать свой собственный тип данных и реализовать все операции, которые вы хотите сделать с ним. Именно так компилятор эмулирует 64-битный набор данных, когда архитектура поддерживает только 32-разрядные данные.

Таким образом, класс/структура с двумя членами является правильной отправной точкой. Теперь вы должны выполнить основные операции: +, -, *,/. Добавление и подпрос легко, вам нужно уделять больше внимания * и /. То, что я могу вам сказать, заключается в том, что обычно компиляция реализует их с использованием повторных операций добавления и подпрограммы.

  • 0
    спасибо, можете ли вы помочь мне с бумагой или страницами веб-сайта, которые говорят об этом, я много искал в поиске подходящего
  • 0
    @ user3038489: Найдите «Формат с плавающей запятой IEEE», чтобы найти примеры различных форматов с плавающей запятой.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню