Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
JerryI
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 31
#1

Тип данных с фиксированной точкой - C++

22.11.2013, 17:16. Просмотров 537. Ответов 5
Метки нет (Все метки)

Добрый день.
Возможно вопрос некорректный, но все же...
Типа данных float хорошо подходит для работы с нецелыми числами, но процессор обрабатывает их гораздо медленней, чем целочисленные типы.
Мне неплохо подошел бы тип с одним/двумя знаком после запятой. Имеется много участков, которые инкрементируют переменные, а нужно, чтобы некоторые участки(функции) делали инкремент через-раз (+=.5), городить кучу доп.переменных не хочется, а в программе важен каждый такт, поэтому приходится прибегать к низкоуровневым оптимизациям.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 17:16     Тип данных с фиксированной точкой
Посмотрите здесь:

В строке записано вещественное число в форме с фиксированной точкой. Преобразовать строку, записав в нее округленное до целых значение данного числа. C++
C++ Перечисляемый тип данных.Символьный тип.
C++ тип данных
C++ Тип данных
Выделить подстроку, задающую вещественное число с фиксированной точкой C++
Путаница с типами данных TCHAR и char. Какой тип данных выбрать? C++
C++ Объясните значение манипулятора: формат с фиксированной точкой
C++ Вывод с фиксированной точкой
C++ Типы данных с плавающей точкой
C++ Способы представление чисел с фиксированной точкой
В заданой строке выделить подстроку, которая соответствует записи вещественного числа с фиксированной точкой C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
22.11.2013, 17:25     Тип данных с фиксированной точкой #2
Тогда почему бы не пользоваться целыми числами, умноженными на нужный коэффициент? Если нужна точность до 1/2, достаточно умножать на 2. Число 3 будет соответствовать 1.5 и так далее.
JerryI
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 31
22.11.2013, 17:27  [ТС]     Тип данных с фиксированной точкой #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
Тогда почему бы не пользоваться целыми числами, умноженными на нужный коэффициент? Если нужна точность до 1/2, достаточно умножать на 2. Число 3 будет соответствовать 1.5 и так далее.
А можно ли по шаблону сделать работу с переменной. Я имею ввиду - не писать в каждом месте коэффициент.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
22.11.2013, 17:57     Тип данных с фиксированной точкой #4
Можно, например, написать класс и перегрузить в нём арифметические операции, для полного комплекта сделать операции преобразования из/в int, автоматически применяющие тот же коэффициент.
kazak
 Аватар для kazak
3030 / 2351 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
22.11.2013, 18:06     Тип данных с фиксированной точкой #5
Цитата Сообщение от Nick Alte Посмотреть сообщение
Если нужна точность до 1/2, достаточно умножать на 2.
Проще для n знаков после точки умножать число на 10^n, и держать в уме что последние n разрядов - дробь.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
22.11.2013, 18:17     Тип данных с фиксированной точкой #6
Цитата Сообщение от kazak Посмотреть сообщение
Проще для n знаков после точки умножать число на 10^n, и держать в уме что последние n разрядов - дробь.
В каких-то ситуациях проще, да. Но класс с преобразованиями надёжнее, да и точнее: зачем терять 3 с копейками бита там, где достаточно "откусить" один?
Yandex
Объявления
22.11.2013, 18:17     Тип данных с фиксированной точкой
Ответ Создать тему
Опции темы

Текущее время: 09:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru