プログラミング+α学習ブログ

勉強したことの備忘録です。

符号無し整数の算術演算がオーバフローを起こさないことを確認するプログラム

#include <stdio.h>
#include <limits.h>

int main(void)
{
    unsigned x = UINT_MAX - 1;
    
    printf("unsigned型の最大値:%u\n", UINT_MAX);
    printf("x = %u\n", x);
    
    printf("x + 3 = %u\n", x + 3);
    printf("x * 2 = %u\n", x * 2);
    
    return (0);
}

実行結果

unsigned型の最大値:4294967295
x = 4294967294
x + 3 = 1
x * 2 = 4294967292