11.11.2015 Взять и поделить или деление по модулю
Материал из SRNS
|
Есть некоторая неуверенность в результатах работы функций взятия по модулю, для борьбы с которой составлена эта памятка.
Ниже представлены результаты, полученные на Oryx 161, компилятор из Xilinx SDK 2014.4 ( gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-23)).
Классический %
Оператор %
(int(13)) % (int(-15)) = 13
(int(13)) % (int(-10)) = 3
(int(13)) % (int(-5)) = 3
(int(13)) % (int(-1)) = 0
(int(13)) % (int(1)) = 0
(int(13)) % (int(5)) = 3
(int(13)) % (int(10)) = 3
(int(13)) % (int(15)) = 13
(int(-13)) % (int(-15)) = -13
(int(-13)) % (int(-10)) = -3
(int(-13)) % (int(-5)) = -3
(int(-13)) % (int(-1)) = 0
(int(-13)) % (int(1)) = 0
(int(-13)) % (int(5)) = -3
(int(-13)) % (int(10)) = -3
(int(-13)) % (int(15)) = -13
(unsigned int(13)) % (int(-15)) = 13
(unsigned int(13)) % (int(-10)) = 13
(unsigned int(13)) % (int(-5)) = 13
(unsigned int(13)) % (int(-1)) = 13
(unsigned int(13)) % (int(1)) = 0
(unsigned int(13)) % (int(5)) = 3
(unsigned int(13)) % (int(10)) = 3
(unsigned int(13)) % (int(15)) = 13
(int(13)) % (int(-10)) = 3
(int(13)) % (int(-5)) = 3
(int(13)) % (int(-1)) = 0
(int(13)) % (int(1)) = 0
(int(13)) % (int(5)) = 3
(int(13)) % (int(10)) = 3
(int(13)) % (int(15)) = 13
(int(-13)) % (int(-15)) = -13
(int(-13)) % (int(-10)) = -3
(int(-13)) % (int(-5)) = -3
(int(-13)) % (int(-1)) = 0
(int(-13)) % (int(1)) = 0
(int(-13)) % (int(5)) = -3
(int(-13)) % (int(10)) = -3
(int(-13)) % (int(15)) = -13
(unsigned int(13)) % (int(-15)) = 13
(unsigned int(13)) % (int(-10)) = 13
(unsigned int(13)) % (int(-5)) = 13
(unsigned int(13)) % (int(-1)) = 13
(unsigned int(13)) % (int(1)) = 0
(unsigned int(13)) % (int(5)) = 3
(unsigned int(13)) % (int(10)) = 3
(unsigned int(13)) % (int(15)) = 13
[ Иерархический вид ]Комментарии
Войдите, чтобы комментировать.