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

Как определён остаток от деления знакового не знаковое? - C++

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.12.2012, 09:12     Как определён остаток от деления знакового не знаковое? #1
Когда оба операнда беззнаковые, то всё понятно: округляем частное вниз до целых, потом умножаем снова на делитель, это произведение вычитаем из делимого и получим результат, идентичный остатку. Реализация конечно другая, просто последняя разность в алгоритме деления уголком, но результат идентичен тому, что я написал. А если один, или оба операнда отрицательны? Тогда как? И как остаток сформулирован в стандарте языка, или каков точный перевод этого определения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2012, 09:12     Как определён остаток от деления знакового не знаковое?
Посмотрите здесь:

остаток от деления C++
остаток от деления C++
C++ Найти сумму таких чисел в диапазоне [a;b], у которых остаток от деления на 7 такой же, как и у b при делении на 7.
Как вычислить остаток от деления? C++
Как найти остаток от деления C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
31.12.2012, 11:05     Как определён остаток от деления знакового не знаковое? #2
я думал вопрос решен википедия, я вот не понимаю как можно брать знак делителя, так как при делении если получается остаток ,то это именно то число которое нужно добавить к результату умножения частного на делитель, частное по знаку зависит и от делимого и от делителя, если они одного знака то + , если разных то минус,но остаток должен принимать знак делимого, так как домножив частное на делитель мы получим число которое по знаку совподает с делимым , и оно меньше по абсолютному значению, есди его вычесть из делимого получится остаток знака делимого
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.12.2012, 11:50  [ТС]     Как определён остаток от деления знакового не знаковое? #3
Смотри: если при делении отрицательного на положительное частное округлить вниз, то остаток, оперделённый по вике, будет положительным:
-128/6=-22+4/6, остаток +4, не полное частное -22, 128/6=21/6+2/6, остаток +2, не полное частное 21. Проблемы? Вот меня и интересует, куда по стандарту округляется частное и как определён остаток. В стандарте языка, а не в математике.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
31.12.2012, 11:58     Как определён остаток от деления знакового не знаковое? #4
Да никаких проблем. –128 и 128 — разные числа.

В стандарте остаток определяется как вторничный по отношению к делению (тыц, 5.6/4): оператор / даёт целочисленное частное, округляемое к нулю; оператор % ведёт себя так, что если a / b представимо типом результата, то (a / b) * b + a % b == a. То есть -128 % 6 == -2.

С этим тоже никаких проблем (по модулю 6).
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.12.2012, 12:03  [ТС]     Как определён остаток от деления знакового не знаковое? #5
Тогда просто возьму последнюю разность при беззнаковом делении и скорректирую знак.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
31.12.2012, 12:08     Как определён остаток от деления знакового не знаковое? #6
taras atavin, очень страно википедия округляет,я не заметил, но как написал
~OhMyGodSoLong~, все вполне поддается математике
Yandex
Объявления
31.12.2012, 12:08     Как определён остаток от деления знакового не знаковое?
Ответ Создать тему
Опции темы

Текущее время: 12:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru