W C lub C++, operator modulo (znany również jako operator modulo) , oznaczony jako %, to an operator arytmetyczny . Operator dzielenia modulo tworzy reszta dzielenia całkowitego, zwanego także modułem operacji.
Składnia operatora modułu
Jeśli x i y są liczbami całkowitymi, wówczas wyrażenie:
x % y;>
wymawiane jako x mod y. Na przykład 10% 2 będzie wymawiane jako Ten mod Two.
Wartość zwracana operatora Modulo
- Jeśli y całkowicie dzieli x, wynikiem wyrażenia jest 0.
- Jeśli x nie jest całkowicie podzielne przez y, to wynikiem będzie reszta z zakresu [0, y-1]
- (X % I) < (x / 2) ………jeśli (x>= y)
- (X % y) = x ……… jeśli (x
- Jeśli y wynosi 0, to dzielenie przez zero jest błąd w czasie kompilacji .
Przykład operatora Modulo
Poniżej znajduje się program C/C++ demonstrujący działanie operatora modulo:
C++
// C++ Program to demonstrate the working of modulo operator> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >cout << result << endl;> >result = y % x;> >cout << result << endl;> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Mayank Tyagi> |
>
>
C
// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >printf>(>'%d'>, result);> >result = y % x;> >printf>(>'
%d'>, result);> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >printf>(>'
%d'>, result);> >return> 0;> }> |
znak na ciąg Java
>
>
Ograniczenia operatora Modulo
Operator modulo ma kilka ograniczeń. The operator modułu % nie można zastosować Liczb zmiennoprzecinkowych tj. float lub double. Jeśli spróbujesz użyć operatora modulo ze stałymi lub zmiennymi zmiennoprzecinkowymi, kompilator zgłosi błąd.
Przykład 1: Program C/C++ demonstrujący ograniczenia operatora modulo.
C++
// C++ Program to demonstrate the restrictions of modulo> // operator> #include> using> namespace> std;> // Driver code> int> main()> {> >float> x, y;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava> |
Edyta Mack Hirsch
>
>
C
// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >float> x, y;> >float> result;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >printf>(>'%f'>, result);> >return> 0;> }> |
>
>
Wyjście
Compilation Error in C code :- prog.c: In function 'main': prog.c:19:16: error: invalid operands to binary % (have 'float' and 'float') result = x % y; ^>
Operator Modulo dla argumentów ujemnych
Znak wyniku dla operatora modulo jest zależny od maszyny w przypadku argumentów ujemnych, ponieważ akcja jest podejmowana w wyniku niedopełnienia lub przepełnienia.
Przykład 2: Program C/C++ demonstrujący operator modulo dla argumentów ujemnych.
C++
// C++ Program to demonstrate the working of the modulo> // operator for negative operands> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >cout << result << endl;> >x = 4;> >y = -2;> >result = x % y;> >cout << result << endl;> >x = -3;> >y = -4;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava> |
>
>
jak wywołać metodę w Javie
C
// C Program to illustrate the working of the modulo> // operator with negative operands> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >printf>(>'%d'>, result);> >x = 4;> >y = -2;> >result = x % y;> >printf>(>'
%d'>, result);> >x = -3;> >y = -4;> >result = x % y;> >printf>(>'
%d'>, result);> >return> 0;> }> |
>
>Wyjście
-3 0 -3>
Notatka: Wartość zwracana w tym przypadku zależy od kompilatora.
Często zadawane pytania dotyczące operatora Modulo
Pytanie 1. Zdefiniuj moda.
Odpowiedź:
W językach programowania C/C++ mod odnosi się do operacji matematycznej, podczas której jedna liczba jest dzielona przez drugą, a reszta jest zwracana.
Można to wykonać za pomocą operator modulo (%) .
Pytanie 2. Co to jest arytmetyka modowa?
Odpowiedź:
Mod arytmetyczna odnosi się do procesu, w którym liczba owija się wokół pewnego punktu w taki sposób, że zawsze jest mniejsza od tego określonego punktu. Na przykład,
Rozważ liczbę n = 10 i punkt p = 20.
Kiedy zwiększymy n 10 razy, będzie to n = 20, ale w arytmetyce modułowej powinno być mniejsze niż określony punkt.Jednym ze sposobów na osiągnięcie tego jest użycie operatora modulo jako:
n++; n = n % p;>Więcej informacji na temat arytmatyki modułowej można znaleźć w artykule – Arytmetyka modułowa
Pytanie 3. Jaka jest różnica między operatorem modulo a operatorem dzielenia?
Odpowiedź:
Główna różnica między operatorem modulo a operatorem dzielenia polega na tym, że:
- Moduł operatora (%) zwraca resztę z dzielenia jednej liczby przez drugą.
- Operator dzielenia (/) zwraca iloraz po podzieleniu jednej liczby przez drugą.