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

Производительность операций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Морзянка http://www.cyberforum.ru/cpp-beginners/thread387525.html
Всем привет !! Написал программу которая переводит слова в морзянка. Теперь мне надо написать программу которая будет все делать наоборот переводить из морзянки в слова P.S. Моя программа работает только на компиляторах с настроенным русским языком !!!! void morza(char str, int str_len) { int i; for(i=0;i<str_len;i++) { switch(str) {
C++ Математическая функция Составить программу вычисления значения выражения: 1/3 +2 модуль(cos(x-Pi/6)) #include <iostream.h> #include <conio.h> #include <math.h> main() { float x; cout<<"x="; http://www.cyberforum.ru/cpp-beginners/thread387507.html
Секундомер с выводом на экран C++
доброго времени суток. подскажите пожалуйста как сделать секундомер, что бы при нажатии кнопки он остановился пробывал так, оно не работает, та и мили секунды показывает не правильно почему то int ms=0,s=0,m=0,h=0,ch,hh=3600,mm=60,ss=1000; do { system("cls"); ms++; if (ms==ss) {
ООП работа с БД C++
Всем привет! Есть такое задание: Написать программу «Моя записная книжка». Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям. В программе должен быть определен класс, который содержит указатель на структуру, описывающую...
C++ что такое перезагрузка http://www.cyberforum.ru/cpp-beginners/thread387491.html
cout<<trololo Что такое << мне определение, перпод жесткий, + еще мы учим с а не с++ . и с меня он вдвойне спрашивает! и что такое перезагрузка, определение плз
C++ Многомерные массивы и функции. Доброго времени суток. Помогите разобраться с задачкой. Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Вот код: #include <iostream>... подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.11.2011, 06:46     Производительность операций
Что касается индекса и указателя. Просто [CPP]a[100] ганатированно не медленее, чем
C++
1
2
p=a+100;
*p
, но
C++
1
2
3
4
for (i=n; i>=1; --i)
{
 a[i]
}
медленне, чем
C++
1
2
3
4
for (p=a+n-1; p>=a; --p)
{
 *p
}
.
C++
1
for (p=a; p<=a+n-1; ++p)(
тоже медленее, чем
C++
1
for (p=a+n-1; p>=a; --p)
, а
C++
1
for (p=a+n-1; p>=a; --p)
медленее, чем
C++
1
for (i=n; i>0; --i)
, но различие между
C++
1
for (p=a+n-1; p>=a; --p)
и
C++
1
2
e=a+n-1;
for (p=a; p<=e; ++p
и
C++
1
i=a+n-1;
на значимо, а
C++
1
2
e=n-1;
for (i=a; i<=e; ++i
чуть быстрее, но разницу съест и даст обратный эффект высисление указателя по индексу.

Добавлено через 3 минуты
Цитата Сообщение от CEBEP Посмотреть сообщение
Во первых зависимости от числа разрядов не будет - для этого нужна проверка, а она будет дольше, чем выполнить операцию для всех разрядов.
Какя проврека? Число разрядов известно на этапе разработки. Или ты думаешь, что незначащие нули в старших разрядахц цифрами не являются?

Добавлено через 16 секунд
Цитата Сообщение от CEBEP Посмотреть сообщение
Во первых зависимости от числа разрядов не будет - для этого нужна проверка, а она будет дольше, чем выполнить операцию для всех разрядов.
Какая проврека? Число разрядов известно на этапе разработки. Или ты думаешь, что незначащие нули в старших разрядах цифрами не являются?

Добавлено через 8 минут
Кстати, меньшим числом опреаций можно было бы обойтись при использовании системы с большим основанием, например, сложение тех же 32-х битных операндов, но при спользовании шестнадцатеричных операций использует вместо 64-х оперций с цифрами только 16. Вопрос в том, как реализовать быстрое шестнадцатеричное сложение. Таблицей сложенгия? Она будет содержать 256 байт и требовать отдельного вычисления адреса, правда с помощью логической операции, которая может исполняться быстрее арифметической. Ещё меньше операий с цифрами при основании 256, но такая таблица весит 65536 слов, зато операций с цифрами будет всего 8.

Добавлено через 11 минут
Зависимости от числа разрядов не будет в единственном случае - если процессор реализует операции малой разрядности через аналог разрядности в регистр с занулением старших разрядов. Тогда нет разница 16 разрядов занулять, или 24, в любом случае будет затрачено одно и то же время, но тогда минимальноле время расходуется при сложении операндов разрядности регистр, так как эта опреция не требует зануления старших разрядов, то есть выполняется без вспомогательной предварительной операции. Но и в этом случае операции повышенной разрядности, для которых в процссоре нет готовых аппаратных реализаций, реализуются инлайновой функцией на асме и расходуют больше времени. Кстати, ты обратил внимание, что я не упомянул разрядности вроде 22-х, или 34-х бит?
 
Текущее время: 19:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru