logo

C/C++ のモジュラス演算子

係数について理解する前に オペレーター 、という用語について知っておく必要があります。 オペレーター 。プログラミングでは、演算子シンボルは、渡された操作に基づいて特定の番号で特定の操作を実行するようにコンパイラーに指示します。

数値に対してさまざまな演算 (+、-、​​、/) を実行するために使用されます。プログラム内でさまざまな演算子を使用することにより、プログラマーの論理的および数学的能力を強化するのに役立ちます。これら 4 つの基本的な演算子以外にも、次のような他の演算子があります。 モジュラス演算子 (%)、 スコープ解決演算子 (::) など。

チランジーヴィ俳優

このセクションでは、次の点に焦点を当てます。 モジュラス演算子。

C/C++ のモジュラス演算子

C および C++ のモジュラス演算子とは何ですか?

モジュラス演算子 はさまざまなプログラミング言語で使用される記号です。それはパーセント記号 ( % )。算術演算子で使用される剰余演算子です。それによって残りが決まります。場合によっては、余りが 0 になることがあります。これは、数値が約数で完全に割り切れることを意味します。

構文:

 rem = a % b 

上記の構文では、a と b は 2 つの整数であり、 % (パーセント) 記号は、a を b で除算し、剰余を返す剰余演算子です。

モジュラス演算子の戻りの可能性

最初の数値を 2 番目の数値で除算して剰余値のみを返す場合、次の可能性が考えられます。

  1. 変数 a が 2 番目の数値 (b) で完全に割り切れる場合、ゼロ (0) を返すか、余りが 0 になります。
  2. 変数 a が 2 番目の数値 (b) で完全に割り切れない場合は、[1, a - 1] の範囲の数値を返します。あるいは、剰余をゼロ以外の整数値に戻すとも言えます。
  3. 最初の数値 (a) がゼロ以外で、2 番目の数値が 0 の場合、コンパイル時にエラーが発生します。

C/C++ ではモジュラス演算子はどのように機能しますか?

モジュラス演算子は、エンドユーザーが受け取る 2 つのオペランドを操作します。その後、最初の数値を 2 番目の数値で割って余りを求めます。モジュラス演算子の機能を示す次の例を理解しましょう。

: 8 と 5 の間でモジュラス演算子を実行すると、8 % 5 を意味します。8 を 5 で割ると商として 1 が返され、余りとして 3 が返されるため、剰余 3 が返されます。

同様に、 7 % 2 は、7 を 2 で割ると商として 3 を返し、余りとして 1 を返すため、余りとして 1 を返します。

時速100km

例 1: C でモジュラス演算子を実装するプログラムを作成します。

モード.c

 #include #include void main() { int a, b; int res; // store the resultant of modulus expression a = 5; b = 2; res = a % b; // define modulus expression printf(' Modulus returns a remainder: %d', res); res = b % a; // define modulus expression printf(' 
 Modulus returns a remainder: %d', res); a = 10; b = 5; res = a % b; // define modulus expression printf(' 
 Modulus returns a remainder: %d', res); getch(); } 

出力:

 Modulus returns a remainder: 1 Modulus returns a remainder: 2 Modulus returns a remainder: 0 

注: 浮動小数点数を別の数値で除算すると、無効なオペランドとしてコンパイルされたタイマー エラーが返されます。したがって、浮動小数点数では機能しないと言えます。

C++ でモジュラス演算子を実装するプログラム。

モード3.cpp

 #include using namespace std; int main(void) { int a, b; int res; // store the resultant of modulus expression a = 5; b = 2; res = a % b; // modulus expression cout &lt;<' modulus returns a remainder: ' << res; res="b" % a; expression cout <<'
 b="5;" b; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Modulus returns a remainder: 1 Modulus returns a remainder: 2 Modulus returns a remainder: 0 </pre> <h2>Modulus Operator in C++</h2> <p> <strong>Mode4.cpp</strong> </p> <pre> #include using namespace std; int main(void) { int a, b; int res; // store the result of modulus expression a = -5; b = 2; res = a % b; // modulus expression cout &lt;<' modulus returns a remainder: ' << res; b="-3;" res="a" % b; expression cout <<'
 return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Modulus returns a remainder: -1 Modulus returns a remainder: 2 Modulus returns a remainder: -1 </pre> <h3>Chaining of Modulus Operator</h3> <p>We can use the Chaining of Modulus Operator to perform modular division on more than two operands in a single statement. Following is the pseudo-code for the chaining of modulus operator, as given below.</p> <pre> res = operand1 % operand2 % operand3 % .... % operand_n </pre> <p>Let&apos;s consider the program of Chaining of Modulus Operator to take more than two operands.</p> <p> <strong>Mode5.cpp</strong> </p> <pre> #include using namespace std; int main() { // Use of modulus operator in C++ int x = 14; int y = 6; int z = 3; int modulo = x % y % z; // x % y returns 2, and 2 % z returns 2 cout &lt;&lt; &apos;Modulus is : &apos;&lt;&lt; modulo; } </pre> <p> <strong>Output:</strong> </p> <pre> Modulus is: 2 </pre> <hr></'></pre></'>

C++ のモジュラス演算子

モード4.cpp

 #include using namespace std; int main(void) { int a, b; int res; // store the result of modulus expression a = -5; b = 2; res = a % b; // modulus expression cout &lt;<\' modulus returns a remainder: \' << res; b="-3;" res="a" % b; expression cout <<\'
 return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Modulus returns a remainder: -1 Modulus returns a remainder: 2 Modulus returns a remainder: -1 </pre> <h3>Chaining of Modulus Operator</h3> <p>We can use the Chaining of Modulus Operator to perform modular division on more than two operands in a single statement. Following is the pseudo-code for the chaining of modulus operator, as given below.</p> <pre> res = operand1 % operand2 % operand3 % .... % operand_n </pre> <p>Let&apos;s consider the program of Chaining of Modulus Operator to take more than two operands.</p> <p> <strong>Mode5.cpp</strong> </p> <pre> #include using namespace std; int main() { // Use of modulus operator in C++ int x = 14; int y = 6; int z = 3; int modulo = x % y % z; // x % y returns 2, and 2 % z returns 2 cout &lt;&lt; &apos;Modulus is : &apos;&lt;&lt; modulo; } </pre> <p> <strong>Output:</strong> </p> <pre> Modulus is: 2 </pre> <hr></\'>

モジュラス演算子の連鎖

モジュラス演算子の連鎖を使用して、1 つのステートメントで 3 つ以上のオペランドに対してモジュラー除算を実行できます。次に示すのは、モジュラス演算子の連鎖の疑似コードです。

Javaしながらやる
 res = operand1 % operand2 % operand3 % .... % operand_n 

3 つ以上のオペランドを取るモジュラス演算子の連鎖プログラムを考えてみましょう。

モード5.cpp

 #include using namespace std; int main() { // Use of modulus operator in C++ int x = 14; int y = 6; int z = 3; int modulo = x % y % z; // x % y returns 2, and 2 % z returns 2 cout &lt;&lt; &apos;Modulus is : &apos;&lt;&lt; modulo; } 

出力:

 Modulus is: 2