, так что в настоящее время я помогаю в разработке языка программирования, и мы достигли точки, в которой нам нужно реализовать тип фиксированной точки, используя C++ в качестве нашего базового языка, чтобы написать это. умеет вычислять, как добавлять, вычитать, умножать, делить, однако я рисую пробел, как это сделать для модуля и экспоненты. Я чувствую, что я близок к выяснению экспоненциальности, поэтому я сосредоточу этот вопрос на модуле., реализующий модуль с фиксированной точкой типа
В настоящее время я делаю это, я беру строковый литерал и отслеживаю точку радиуса и нахожу расстояние от конца строки, и это дает мне мой коэффициент масштабирования. После этого мы сохраняем целое большое целое число, которое должно быть ограничено фиксированным типом (если не возникнут такие обстоятельства, как деление ... или, возможно, модуль), в этот момент мы увеличиваем дробную сторону основания на почти половину размера целой части). Я реализовал способы захвата значений слева от основания и справа от оснований путем умножения на коэффициенты 10 (я хочу, чтобы точность, которая приходит с базой 10, в отличие от скорости базы 2), чтобы получить место, где радикс будет сидеть. Я искал googled, как реализовать модуль по типам фиксированных точек, но безрезультатно.
Я не могу понять, как можно реализовать его. Есть ли способ реализовать это? Знают ли люди об обобщенном алгоритме? Что-нибудь, чтобы указать мне в правильном направлении? Помните, я нацелен на точность. Скорость тоже хороша, но главной директивой является точность.
Чтобы уточнить, оборудование, над которым мы будем работать, обобщается. Что касается определения того, что я хочу ... вот почему я здесь. Я не знаю, чего хочу, хочу узнать несколько примеров и варианты выбора. На самом деле я просто пытаюсь узнать об этом.
Пример:
сказать, что есть fixed8x8 и я выталкивать 2% 1,2 (2 может быть 2,0, а здесь), результат должен вернуться 0,8. Какое хорошее правило для расширения размеров правой стороны, чтобы компенсировать точность?
Что означает «модуль» в этом контексте? Числа с фиксированной точкой представляют действительные числа, а по действительным числам умножение обратимо, поэтому нет понятия «остаток». –
«Я хочу точность, которая приходит с базой 10, в отличие от скорости базы 2»? вы ожидаете получить больше точности, используя базу 10? – user463035818
Я не уверен, что понимаю, что вы имеете в виду, когда умножение является обратимым. Я получаю, что они представляют действительные числа, но, безусловно, есть еще способ захватить остаток из группы. Вы говорите мне, что все вычисления фракций по модулю выполняются в плавающей точке и, возможно, я неправильно понимаю? –