MENU

【C言語】絶対値を求めるabs関数の使い方を解説

この記事では、C言語のabs関数の使い方や注意点、さらには代替手段について解説しています。

初心者の方でもわかりやすく、絶対値を求める方法を学ぶことができます。

目次から探す

abs関数とは

abs関数は、C言語の標準ライブラリに含まれる関数の一つです。

この関数は、与えられた整数の絶対値を返す機能を持っています。

絶対値とは、数値の符号を無視して、その数値の大きさだけを考えた値のことです。

abs関数の概要

abs関数は、以下のようなプロトタイプ宣言を持っています。


int abs(int n);

この関数は、引数として整数nを受け取り、その絶対値を整数型で返します。

abs関数の基本的な使い方

abs関数の基本的な使い方は非常に簡単です。

以下に、具体的な使用例を示します。


#include <stdio.h>
#include <stdlib.h>
int main() {
    int num = -10;
    int absNum = abs(num);
    
    printf("絶対値: %d\n", absNum);
    
    return 0;
}

上記のコードでは、変数numに-10という値を代入し、abs関数を使ってその絶対値を求めています。

abs関数の結果は、変数absNumに代入され、最後に結果を表示しています。

実行結果は以下のようになります。

絶対値: 10

このように、abs関数を使うことで、与えられた整数の絶対値を簡単に求めることができます。

abs関数の注意点

abs関数の引数の型に注意する

abs関数は、整数型の引数を受け取り、その絶対値を返す関数です。

しかし、引数の型には注意が必要です。

abs関数は、int型の引数を受け取ることができますが、unsigned int型の引数も受け取ることができます。

つまり、負の値を渡すと正の値を返し、正の値を渡すとそのまま返します。

以下に、abs関数の引数の型による挙動の違いを示します。


#include <stdio.h>
#include <stdlib.h>
int main() {
    int num1 = -10;
    unsigned int num2 = 10;
    int result1 = abs(num1);
    unsigned int result2 = abs(num2);
    printf("num1の絶対値: %d\n", result1);
    printf("num2の絶対値: %u\n", result2);
    return 0;
}

上記のコードを実行すると、以下のような結果が得られます。

num1の絶対値: 10
num2の絶対値: 10

num1には負の値を、num2には正の値を渡していますが、どちらの結果も正の値が返されています。

これは、abs関数が引数の型に応じて適切な絶対値を返すためです。

abs関数の戻り値の範囲に注意する

abs関数の戻り値の範囲にも注意が必要です。

abs関数は、引数の絶対値を返すため、戻り値の型は引数の型と同じです。

つまり、int型の引数に対してはint型の絶対値が、unsigned int型の引数に対してはunsigned int型の絶対値が返されます。

しかし、int型の数値の範囲は、-2147483648から2147483647までです。

これは32ビットの符号付き整数の範囲です。

もし、この範囲を超える絶対値を求める場合、正しい結果が得られない可能性があります。

以下に、abs関数の戻り値の範囲による挙動の違いを示します。


#include <stdio.h>
#include <stdlib.h>
int main() {
    int num1 = -2147483648;
    int num2 = 2147483647;
    int result1 = abs(num1);
    int result2 = abs(num2);
    printf("num1の絶対値: %d\n", result1);
    printf("num2の絶対値: %d\n", result2);
    return 0;
}

上記のコードを実行すると、以下のような結果が得られます。

num1の絶対値: -2147483648
num2の絶対値: 2147483647

num1には最小の負の値を、num2には最大の正の値を渡していますが、num1の絶対値が負の値のままであることに注意してください。

これは、int型の絶対値の範囲を超えるため、正しい結果が得られないことを示しています。

以上が、abs関数の注意点についての説明です。

引数の型と戻り値の範囲に注意して、正しくabs関数を使いましょう。

1 2
目次から探す