0
當我試圖在C中執行-13%-10語句時,我得到-3作爲輸出,我很想知道爲什麼輸出不是3.當我們使用負值操作時,%操作符如何工作?
當我試圖在C中執行-13%-10語句時,我得到-3作爲輸出,我很想知道爲什麼輸出不是3.當我們使用負值操作時,%操作符如何工作?
我不知道回答你的問題,要麼。因此,我向您展示了原方程並插入他們進入一個短暫的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」)將始終具有相同的符號。
嗯,我找到了答案,在這裏它, 其實我想它會得到解決的-13%-10 = -13/-10 = 13/10 = 10 * 1 + 3 但實際上它將被解決爲 –
最後我找到了答案,在這裏,它是, 其實我認爲它將被解決爲-13%-10通過消除負號,然後計算餘數爲13 - 10 * 1 = 3 但實際上它將被解決爲 -13%-10 = -13 - (-10 * 1)= -13 +10 = -3 –