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

U, L, F в константах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ QtCreator http://www.cyberforum.ru/cpp-beginners/thread560549.html
Не работают функции rand() и srand(). вот ругань QtCreator-а: /home/shooter/Документы/untitled1-build-desktop-Qt___PATH______/../untitled1/main.cpp:7: ошибка: ‘srand’ was not declared in this scope /home/shooter/Документы/untitled1-build-desktop-Qt___PATH______/../untitled1/main.cpp:17: ошибка: ‘rand’ was not declared in this scope...
C++ Описать структуру с именем STUDENT Всем привет) Не могу решить задачу. Описать структуру с именем STUDENT, содержащую следующие поля: • фамилия и инициалы; • номер группы; • успеваемость (массив из пяти элементов). Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; • упорядочить записи по возрастанию номера группы; • вывод на дисплей фамилий... http://www.cyberforum.ru/cpp-beginners/thread560547.html
Объясните план изучения C++ C++
мне один человек посоветовал такой план изучение С++(для самоучек) 1. Основа C++, с понятием об ООП. 2. Win32 API и параллельно подучить C++. 3. Изучение C++ глубже. 4. C++ .NET или начну изучать C# .NET Единственно что мне здесь не понятно это 2. Win32 API и параллельно подучить C++. Это мне надо учить и WinApi и С++ вмести я так понимаю?
C++ Быстрый алгоритм перестановки элементов одномерного массива
Ищу быстрый алгоритм перестановки элементов одномерного массива. В массиве int, надо менять местами элементы для получения "популяции" на вход генетики. Должен работать быстро, несколько десятков раз подряд(если на выходе один массив) или давать менее m! массивов(m-количество элементов), т.е. с возможностью остановки алгоритма до генерации m! массивов. Можно только название алгоритма, если он...
C++ Структура: Исключив из заданного массива данных типа data несуществующие даты, остальные напечатать, считая наименьшую дату началом года http://www.cyberforum.ru/cpp-beginners/thread560526.html
typedef struct {int d, m;} data; Исключив из заданного массива данных типа data несуществующие даты, остальные напечатать, считая наименьшую дату началом года. (в году 365 дней)
C++ Решение куб. уравнения. решение кубического уравнения. Программа работает слишком медленно. (Не знаю в каком месте медленно, как по мне - так нормально) Есть кубическое уравнение вида A*X3 + B*X2 + C*X + D = 0. все корни уравнений – целые числа и находятся на отрезке . написать программу, которая поможет ему найти корни кубических уравнений! Я пишу так. Как известно, целочисленные корни уравнения являются... подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
03.05.2012, 22:42     U, L, F в константах
C
1
long long x = 2147483392 * r;
В правой части мы видим константу типа int и переменную r типа int. Поэтому умножение над двумя int'ами произойдёт в формате int (т.е. 32-битное умножение, которое вызовет переполнение и откидывание старшей части). Затем при присваивании int'а в long long произойдёт преобразование типов int -> long long (т.е. int32 -> int64)

C
1
long long y = 2147483392LL * r;
В правой части стоит константа типа long long и переменная типа int. При арифметической операции над аргументами разных типов по стандарту более узкий аргумент будет приведён к типу более широкого аргумента и операция будет выполнена в типе более широкого аргумента. Поэтому сначала выполнится преобразование int -> long long для переменной "r", и только после этого будет выполнено 64-битное умножение (уже без переполнения)

Во втором примере со сдвигами вся фишка в том, что операция сдвига вправо на большинстве процессоров по разному выполняется для знаковых и беззнаковых типов. Чтобы результаты отличались, надо чтобы у сдвигаемого аргумента самый старший бит был равен единице. В своём примере я это сделал при помощи операции сдвига влево (которая одинаково работает как для знаковых, так и беззнаковых типов)
 
Текущее время: 13:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru