当我试图在c中执行-13%-10语句时,我得到-3作为输出,我很想知道为什么输出不是3。
答案 0 :(得分:0)
我也不知道你问题的答案。所以我扩展了你原来的等式并将它们插入一个简短的Netbeans / GCC C程序中:
/*
* File: main.c
* Author: Colleen
*
* Created on December 16, 2015, 9:43 AM
* Testing modulus operations with negative numbers.
*/
#include <windef.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
/*
*
*/
int main(int argc, char** argv) {
INT16 A = -13;
INT16 B = -10;
printf ("1. %3d %% %3d = %3d\n", A, B, A % B);
printf ("2. %3d %% %3d = %3d\n", -A, B, (-A)% B);
printf ("3. %3d %% %3d = %3d\n", A, -B, A%(-B));
printf ("4. %3d %% %3d = %3d\n", -A, -B, (-A)%(-B));
return (EXIT_SUCCESS);
}
以下是我的结果:
1. -13 % -10 = -3
2. 13 % -10 = 3
3. -13 % 10 = -3
4. 13 % 10 = 3
RUN SUCCESSFUL (total time: 35ms)
所以它看起来就像红利(你要分红的数字,或上面的“A”)和商(上面的答案或“C”)总是有相同的符号。