Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/268: Рейтинг темы: голосов - 268, средняя оценка - 4.95
8 / 9 / 3
Регистрация: 18.11.2009
Сообщений: 676
1

Что означают операторы % и /=

16.05.2011, 21:40. Показов 50287. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вроде мелочь, а нигде не могу найти(
C#
1
2
3
4
5
    for(; iDec > 0; iDec/=numbase)
            {
                int rem = iDec % numbase;
                    result[--MaxBit] = rem;
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2011, 21:40
Ответы с готовыми решениями:

Что означают записи в []
Ребят, вот не однократно уже видел записи в коде в . Например: Что означают эти скобки, в...

Что означают эти строки?
Скажите, пожалуйста, что означают эти строки: if (a >> 28 != 5) { b = a & 0x0fffffff; }

Что означают 0xFFFFFFFF и 0xeeeeeeee?
Здравствуйте! Подскажите, пожалуйста, что означают 0xFFFFFFFF и 0xeeeeeeee?

Что означают get и set в фигурных скобках?
Например есть класс, внутри описываются поля: public class TournirInfo0 { public int...

10
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
16.05.2011, 21:43 2
% - остаток от целочисленного деления.
/= - разделить переменную на значение и ответ присвоить этой же переменной.
1
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527
16.05.2011, 21:57 3
/= это тоже самое что и
C#
1
iDec = iDec / numbase;
2
8 / 9 / 3
Регистрация: 18.11.2009
Сообщений: 676
17.05.2011, 07:08  [ТС] 4
спасибо.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.05.2011, 07:14 5
Цитата Сообщение от Петррр Посмотреть сообщение
/= - разделить переменную на значение и ответ присвоить этой же переменной.
Нет. Это означает уменьшить левый операнд в число раз, равное правому. Причём, он может быть и дробным, например,
C++
1
a/=1.5;
означает уменьшение в полтора раза.

Добавлено через 2 минуты
Цитата Сообщение от umnick_kh Посмотреть сообщение
/= это тоже самое что и
Нет.
C++
1
а=a/b;
означает получение частного во временной вспомогательной величене и копирование его оттуда в переменную, а
C++
1
a/=b;
обходится без такой величины.
2
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
17.05.2011, 08:17 6
taras atavin, a/=b это деление с присваиванием, является сокращенной записью a = a/b.
0
185 / 188 / 17
Регистрация: 26.11.2010
Сообщений: 511
17.05.2011, 08:17 7
Цитата Сообщение от taras atavin Посмотреть сообщение
Нет.
C++
1
а=a/b;
означает получение частного во временной вспомогательной величене и копирование его оттуда в переменную, а
C++
1
a/=b;
обходится без такой величины.
Нет. Просто такого деления для целочисленного типа (Int)
Для double будет обычное (нормальное) деление.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.05.2011, 09:11 8
Цитата Сообщение от Killster Посмотреть сообщение
Нет. Просто такого деления для целочисленного типа (Int)
Для double будет обычное (нормальное) деление.
Сам понял?
Цитата Сообщение от kazak Посмотреть сообщение
является сокращенной записью a = a/b.
C++
1
2
3
4
5
class A{
...
}
a=a/b; // С этой строки будет гарантировано скопилирован код, отличающийся от такового для следующей. Здесь будут вызваны: оператор /, оператор = присваивания, конструктор и деструктор, оптимизация путём исключения вспомогательного временного объекта не возможна
a/=b; //А здесь оптимизация уже выполнена, будет вызван только оператор /=, реализация которого в общем случае не совпадает с предыдущей строкой
Добавлено через 3 минуты
Исключение только одно: если в исходнике оператора /= написана реализация через / и =.

Добавлено через 4 минуты
Причём, если /= вообще не делать, то и строка
C++
1
a/=b;
будет вообще недопустима.
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
17.05.2011, 09:17 9
taras atavin, а при чем здесь классы?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.05.2011, 09:23 10
Цитата Сообщение от kazak Посмотреть сообщение
taras atavin, а при чем здесь классы?
При сокращённой записи, при которой определение оператора /= вообще бы не поддерживалось, а сам оператор работал. Кстати, можно не делать и операторы = и /, или один из них, тогда не допустимо
C++
1
a=a/b;
.
C++
1
a/=b;
и
C++
1
a=a/b;
- действительно (а не только внешне) разные строки, результат выполнения которых идентичен, но может достигаться разными путями. В целях оптимизации следует избегать
C++
1
a=a/b;
: мало ли сколько времени потребуется компилятору на то, чтоб сообразить как это можно оптимизировать и из-за каких опций он может этого не сделать, особенно в дебаге (а потом будешь долго удивляться фиг знает почему выросшей разнице между дебагом и релизом).
1
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
17.05.2011, 12:07 11
taras atavin, это все понятно, но классы то здесь причем, ведь для них нет стандартного определения операторов = + - / и т.д. Тут все зависит от болезненного воображения программиста. Вопрос задавался в контексте встроенных типов и ответы на него были даны соответствующие.
0
17.05.2011, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2011, 12:07
Помогаю со студенческими работами здесь

Что означают get, ref и set? Простым языком?
Сколько ищу в интернете, всё не понятно. Что означают get, ref и set?

Что означают эти символы в регулярном выражении?
Добрый день! есть регулярное выражение, которое проверяет правильность почтового адреса (один из...

Что означают кавычки рядом с символом в строке кода
вот фрагмент из кода: if(Convert::ToString(dataGridView2->Rows->Cells->Value) == L"") return i;...

Что означают ref и sealed в определении класса DependencyProperty?
Что означают ref и sealed в определении (или это правильнее назвать объявление?) класса...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru