c语言中如何处理整数值的上溢和下溢
1、c语言中如何处理整数值的上溢。
#include <stdio.h> int main(void) { int i; int j = 1; for(i = 1; i <= sizeof(int) * 8 - 1; i++) { j *= 2; } printf("j = %d.\n", j - 1); // 确定int型为正的上限 int num = j - 1; printf("num: %d.\n", num); printf("num + 1: %d.\n", num + 1); //在上限增加1 printf("num + 2: %d.\n", num + 2); return 0; }
2、c语言如何处理整数值的下溢
#include <stdio.h> int main(void) { int i; int j = 1; for(i = 1; i <= sizeof(int) * 8 - 1; i++) { j *= 2; } printf("j = %d.\n", j); //j为int型整数值的下限 printf("j - 1: %d.\n", j - 1); //下溢1 printf("j - 2: %d.\n", j - 2); return 0; }