С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
#1

Остаток от деления знакового на знаковое через беззнаковые - C++

30.12.2012, 12:20. Просмотров 355. Ответов 7
Метки нет (Все метки)

Каким текстом можно получить гарантированно правильный результат, если нельзя использовать готовую операцию остатка сразу для знаковых?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 12:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Остаток от деления знакового на знаковое через беззнаковые (C++):

Как определён остаток от деления знакового не знаковое? - C++
Когда оба операнда беззнаковые, то всё понятно: округляем частное вниз до целых, потом умножаем снова на делитель, это произведение...

Найти частное и остаток от деления нацело без операции деления - C++
1)Дано целое число A (> 0) и целое число B (> 0). Найти долю Q и остаток R от деления нацело числа A на B (без использования операции...

Найти частное от деления нацело N на K, а также остаток от этого деления - C++
While3. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а...

Для двух целых чисел найти остаток и частное от целочисленного деления, частное от вещественного деления - C++
Уважаемые форумчане помогите пожалуйста с двумя программами. Это вопрос жизни и отчисления, я очень плохо понимаю программирование. В...

Остаток от деления - C++
Поправьте меня в типах переменных: #include <iostream> #include <cmath> using namespace std; int main() { double...

остаток от деления - C++
Начало прогр на табуляцию функции. Не могу найти остаток от деления в сточке if ((x1-x2)%d==0) на d оно почему-то не делит ...

7
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
30.12.2012, 12:46 #2
C++
1
2
3
int mod(double a,double b){
    return a-b*((int)(a/b));
}
ты это имеешь ввиду?
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
30.12.2012, 12:51  [ТС] #3
Нет конечно. Во-первых деление с остатком определено для целых. А во-вторых со знаковыми величинами разрешены ровно две операции: сравнение с нолём и вычисление модуля. Но при этом результат должен быть гарантировано идентичен
C++
1
return a%b;
, где a и b знаковые. При любом возможном сочетании знаков a и b.
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
30.12.2012, 12:53 #4
и вроде стандартный остаток тоже самое выдает

Добавлено через 2 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
Во-первых деление с остатком определено для целых, а не действительных.
тут я сложал
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
30.12.2012, 12:54  [ТС] #5
Цитата Сообщение от Nixy Посмотреть сообщение
и вроде стандартный остаток тоже самое выдает
А я не его написал? Надо исхитриться так, чтоб выдать его результат, но не используя ни одной операции со знаковыми числами, кроме унарного минуса, явной функции abs и сравнения с нолём, все остальные операции должны быть с беззнаковыми. При этом исходные данные знаковые. Оба.
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
30.12.2012, 13:00 #6
C++
1
2
3
4
5
6
7
8
int mod(int a,int b){
    if (a < 0) {
       return -(abs(a)%abs(b));
    }
    else {
       return (abs(a)%abs(b));
    }
}
так чтоли?
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
30.12.2012, 13:09  [ТС] #7
То есть от знака b не зависит?
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
30.12.2012, 13:12 #8
нет, попробуйте на листочке поделить, от знака b зависит результат деления, а остаток зависит от числа a
0
30.12.2012, 13:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2012, 13:12
Привет! Вот еще темы с ответами:

остаток от деления - C++
обычно использовал &quot;%&quot; для отделения остатка от деления двух чисел только для того чтобы узнать целочисленное деление или нет. Теперь...

Остаток от деления (%) - C++
Не могу понять как можно изменить структуру кода, чтобы программа считала правильно на отрицательные значения цифр. Вот код: #include...

остаток от деления - C++
Народ помогите пожалуйста)) в паскале есть такие функции div и mod div - целая часть от деления (модуль) mod -остаток от деления ...

Остаток от деления - C++
Дано 50-значное число в char массиве. (char m=&quot;54215611...&quot;; Как считать остаток от деления этого числа на 7 ? Заранее...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.