| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Операторы div и mod |
| Автор: Dаedra 16.5.2009, 22:39 |
| Помогите разобраться с этими операторами. Это не операторы Си, хотя в си есть аналог, но мне очень нужно разобраться с вычислинием таких выражений. Уже месяц мучаюсь в попытках понять механизм вычисления результата. Как можно описать их МАТЕМАТИЧЕСКИ? То есть мне интересно, если a mod b = c, то как вычислить это С без помощи компилятора? Вот как понять "остаток от деления"? Если 3/4=0.75, то 75 будет остатком от деления? Или остаток от деления - это число, которое остается в делимом (при делении столбиком) при невозможности делить дальше, когда делимое меньше делителя? В общем, вот так непонятно описал, но подскажите по этой теме, как находить все эти div и mod? |
| Автор: azesmcar 16.5.2009, 22:44 | ||
c = a - (a / b) * b; |
| Автор: Dаedra 16.5.2009, 22:47 | ||
Спасибо. А можно точно так же разложить div? |
| Автор: mes 16.5.2009, 22:47 |
| Есть такое понятие, как целочисленное деление. То которое проходили в начальной школе (помойму 3й класс Остаток числа, который нельзя поделить нацело, и есть нужный Вам остаток. 3 mod 4 = 3; // так как делимое меньше делителя, оно все является остатком. 3 div 4 =0; 29 mod 3 = 2; // 29 - (29 div 3)*3 = 29 -9*3 = 29-27 =2; 29 div 3 =9; |
| Автор: azesmcar 16.5.2009, 22:47 |
DIV если не ошибаюсь в Pascal называлось обычное целочисленное деление. Вообще div - divide - деление. В C/C++ это делает оператор / |
| Автор: Dаedra 16.5.2009, 22:52 | ||
| Вот спасибо! А то такие мелочи упустил когда-то в школе, а теперь приходится поднимать информацию и выискивать, где можно.. Добавлено через 3 минуты и 25 секунд
И последний вопрос.. Здесь ведь по идее a/b (в скобках) должно быть целым числом? Потому что в Си, например, при точности числовых типов это все-таки должно дать ноль. |
| Автор: mes 17.5.2009, 00:49 | ||||
нет, для целых чисел в Си применяется целочисленное деление, поэтому 24/5 =4, а 24/5*5 =20
не понял на что Вы намекаете, но в третьем (или даже пораньше) классе мы (также как и другие школьники) проходили деление с остатком - как раз то о котором сейчас идет речь. |