C の整数除算

Waqar Aslam 2023年10月12日
  1. C の整数除算
  2. C における整数除算と浮動小数点除算の規則
  3. C における整数除算と剰余演算子
C の整数除算

この記事では、C で整数除算演算がどのように機能するかを示します。

C の整数除算

Cでは、別の整数または他の種類の変数で除算演算を実行することにより、整数を除算できます。 部分に分割される変数は被除数ですが、分割される変数は除数です。

整数をそれ自体で割ると、商と剰余の 2つの数値が得られます。 C で整数を使用して数値を除算する規則は、算術を使用する規則と非常によく似ています。

除算について考えるとき、分数コンポーネント (浮動小数点データ型) を含む可能性のある答えにつながるプロセスをよく目にします。 浮動小数点除算は、この特定の種類の除算に付けられた名前です。

ただし、両方のオペランドが整数データ型の場合、プログラミング言語によって動作が異なる可能性がある特殊な除算が実行されます。 このタイプの除算は、整数除算と呼ばれます。

両方のオペランドが整数データ型である 7/5 の例を見てみましょう。 式は 1 に評価され、小数部分はありません。

繰り返しますが、この種の除算は整数除算として知られています。

整数の除算の結果は、それ自体が整数です。 たとえば、値 1 に評価される式 7/4 と値 3 に評価される式 17/5 をそれぞれ取ります。

% で表される剰余演算子は C で使用でき、整数除算後に得られた値を返します。 残差演算子は、整数オペランドにのみ使用できる一種の整数演算子です。

xy で除算した後、式 x % y によって返される結果は残差です。 したがって、7 % 4 は 3 になり、17 % 5 は 2 になります。

C における整数除算と浮動小数点除算の規則

integer / integer = integer
float / integer = float
integer / float = float

Cの整数値で整数を除算する

次のプログラムの例では、整数値を別の整数値で除算し、最終出力として整数値を生成します。

#include <math.h>
#include <stdio.h>

int main() {
  int a = 3;
  int b = 15;
  int result;

  result = (b / a);
  printf("%d", result);
  return 0;
}

出力:

5

Cの整数値で浮動小数点数を除算する

次のコード例では、float 値を整数値で除算し、float 値を最終出力として生成します。

#include <math.h>
#include <stdio.h>

int main() {
  int a = 3;
  float b = 15.50;
  double result;

  result = (b / a);
  printf("%f", result);
  return 0;
}

出力:

5.166667

Cの浮動小数点値で整数を除算する

次のコード例は、整数値を float 値で除算し、最終出力として float 値を生成します。

#include <math.h>
#include <stdio.h>

int main() {
  int a = 15;
  float b = 3.2;
  double result;

  result = (a / b);
  printf("%f", result);
  return 0;
}

出力:

4.687500

C における整数除算と剰余演算子

整数の割り算の問題の後半の解答です。

% 記号はこの演算子を示します。 その正式名称は percentile 演算子です。 モジュラス演算子は、C の算術演算子に新たに追加されたもので、2つの異なるオペランドで同時に機能する場合があります。

結果を決定するために、分子を指定された分母で割ります。 別の言い方をすれば、整数除算後の剰余が存在することになります。

このため、剰余は常に整数になります。 剰余が残っていない場合、剰余はゼロ (0) になります。

整数除算による商と剰余の計算

まず、データ型 int の main() 関数内に 4つの変数を作成し、それらに dividenddivisorquotientremainder. という名前を付ける必要があります。

int main() {
  int dividend;
  int divisor;
  int quotient;
  int remainder;
}

ここで、dividenddivisor の 2つの値を入力するように求めるメッセージをユーザーに表示し、それらの値をそれらに対応する変数に保存します。

printf("Enter dividend: ");
scanf("%d", &dividend);
printf("Enter divisor: ");
scanf("%d", &divisor);

dividenddivisor で割って商を計算します。 また、剰余は dividend モジュラス divisor で計算します。

quotient = dividend / divisor;
remainder = dividend % divisor;

最後のステップで、計算したばかりの商と剰余をコンソールに出力する必要があります。

printf("Quotient = %d\n", quotient);
printf("Remainder = %d", remainder);

完全なソース コード:

#include <stdio.h>

int main() {
  int dividend;
  int divisor;
  int quotient;
  int remainder;

  printf("Enter dividend: ");
  scanf("%d", &dividend);
  printf("Enter divisor: ");
  scanf("%d", &divisor);

  quotient = dividend / divisor;
  remainder = dividend % divisor;

  printf("Quotient = %d\n", quotient);
  printf("Remainder = %d", remainder);
  return 0;
}

出力:

Enter dividend: 500
Enter divisor: 24
Quotient = 20
Remainder = 20
著者: Waqar Aslam
Waqar Aslam avatar Waqar Aslam avatar

I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.

LinkedIn

関連記事 - C Integer

関連記事 - C Math