Какой язык быстрее?

Аватар пользователя
NT
Сообщений: 3384
Зарегистрирован: 25 янв 2010, 21:00

Какой язык быстрее?

Сообщение NT » 21 янв 2014, 21:17

kiv писал(а):Source of the post

Код: Выбрать все

const int COUNT = 20000000;
:no: :acute:
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Какой язык быстрее?

Сообщение kiv » 22 янв 2014, 05:05

NT писал(а):Source of the post
kiv писал(а):Source of the post

Код: Выбрать все

const int COUNT = 20000000;
:no: :acute:


(Запинаясь) Эээээто вы к чему?...
"Что-то не так? Неверно?" (с) Машка
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
NT
Сообщений: 3384
Зарегистрирован: 25 янв 2010, 21:00

Какой язык быстрее?

Сообщение NT » 22 янв 2014, 06:48

kiv писал(а):Source of the post
(Запинаясь) Эээээто вы к чему?...
"Что-то не так? Неверно?" (с) Машка

Integer type int - Not smaller than short. At least 16 bits.
Max value - 65 536= $$2^{16}$$

20000000 -?
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Какой язык быстрее?

Сообщение kiv » 22 янв 2014, 08:46

NT писал(а):Source of the post
Integer type int - Not smaller than short. At least 16 bits.
Max value - 65 536= $$2^{16}$$

20000000 -?


Насколько я помню, конкретное число бит в стандарте вообще не оговаривается, только
sizeof(char) == 1 да sizeof(int) >= sizeof(short) >= sizeof(char)

А на практике...

Код: Выбрать все

#include <iostream>
#include <limits>
int main(int argc, const char * argv[])
{
 std::cout << "Maximal \'int\' is "
 << std::numeric_limits<int>::max()
 << std::endl;
}


VC++, OW: Maximal 'int' is 2147483647
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Какой язык быстрее?

Сообщение folk » 22 янв 2014, 08:59

NT писал(а):Source of the post
Max value - 65 536= $$2^{16}$$
20000000 -?

Да вы правы, но все знают и реальное значение MAX_INT на 32 битных процессорах) По хорошему надо конечно
const long c = 20000000L;
Последний раз редактировалось folk 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
NT
Сообщений: 3384
Зарегистрирован: 25 янв 2010, 21:00

Какой язык быстрее?

Сообщение NT » 22 янв 2014, 11:29

Kiv, я спорить не буду.
Но согласитесь, дико звучит, что разработчики софта анархисты и один из базовых типов у них на определен.
У меня навык остался еще с 90-х лет, что Max_value_of_ type(unsigned int) = 65535

Вот тут есть таблица INT, там в заголовке (Width in bits by data model ) в Стандарте С++ - 4 байта.

PS. at least 16 bit.
Хммм , точный перевод звучит - "по крайней мере - 16 бит".
Т.е. зависит от модели памяти.
Sorry Kiv
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Какой язык быстрее?

Сообщение kiv » 22 янв 2014, 14:00

NT писал(а):Source of the post
Но согласитесь, дико звучит, что разработчики софта анархисты и один из базовых типов у них на определен.


Хотелось бы найти точный стандарт языка, жаба давит 30$ платить. :whistle:
Я немного порылся в драфте, но не нашел вообще упоминания о диапазонах типов.

Вот из 3.9.1.
There are five standard signed integer types : “signed char”, “short int”, “int”, “long int”, and “long
long int”. In this list, each type provides at least as much storage as those preceding it in the list.

Кто найдет больше - ткните
В стандарт C не лазил.

У Страуструпа нашел уже упоминавшееся мною неравенство размеров и, да - для char - не менее 8 бит, short - не менее 16 бит и long - не менее 32 бит. Про int ничего не говорит.

Упоминает, что есть реализации с 32-битным char...


Ага, имеет место в драфте стандарта C от 2011 года:

5.2.4.2.1 Sizes of integer types <limits.h>
1 The values given below shall be replaced by constant expressions suitable for use in #if
preprocessing directives. Moreover, except for CHAR_BIT and MB_LEN_MAX, the
following shall be replaced by expressions that have the same type as would an
expression that is an object of the corresponding type converted according to the integer
promotions. Their implementation-defined values shall be equal or greater in magnitude
(absolute value) to those shown, with the same sign.
...

— number of bits for smallest object that is not a bit-field (byte)
CHAR_BIT 8

— minimum value for an object of type short int
SHRT_MIN -32767 // −(215 − 1)
— maximum value for an object of type short int
SHRT_MAX +32767 // 215 − 1

— minimum value for an object of type int
INT_MIN -32767 // −(215 − 1)
— maximum value for an object of type int
INT_MAX +32767 // 215 − 1

LONG_MIN -2147483647 // −(231 − 1)
— maximum value for an object of type long int
LONG_MAX +2147483647 // 231 − 1
— maximum value for an object of type unsigned long int


Так что - "ты и я - мы оба правы..."
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Какой язык быстрее?

Сообщение folk » 22 янв 2014, 16:14

ИМХО В смысле большей переносимости конечно прав NT. Хотя зная конкретную платформу можно и заложиться - тут прав Kiv)
Не всегда имеет смысл писать переносимо - это имеет свою цену. По мне так лучше писать понятно если программа не планируется заведомо быть переносимой везде превезде.
Но реально переносимости по стандарту не хватает как правило - в этом смысле мне милее вариант ./configure - проводить на платформе явные тесты и пользоваться тем что проходит) Грубо говоря придя со своими исходниками на другую платформу надо все проверять.
Последний раз редактировалось folk 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Какой язык быстрее?

Сообщение kiv » 22 янв 2014, 19:30

folk писал(а):Source of the post
если программа не планируется заведомо быть переносимой везде превезде.


Для этого (в данном случае) есть <limits.h> и <limits>, в которых описаны все свойства, свойственные имеющемуся компилятору.

Все равно полная и безоговорочная переносимость возможна лишь для очень простых программ.
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
NT
Сообщений: 3384
Зарегистрирован: 25 янв 2010, 21:00

Какой язык быстрее?

Сообщение NT » 23 янв 2014, 09:05

АУ сутки)
Folk, я давно хотел спросить, что это такое? В нескольких последних постах присутствует.
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 5 гостей