最佳答案
1. 整數基本
在C言語中,整數是基本的數據範例之一。C言語供給了多種整數範例,包含:
int
:平日為32位,有標記整數。short
:平日為16位,有標記整數。long
:平日為32位,有標記整數,在某些平台上可能為64位。long long
:至少為64位,有標記整數。
每個整數範例都有其特定的取值範疇。比方,int
範例的取值範疇平日是 -2,147,483,648 到 2,147,483,647。
2. 整數輸入與輸出
在C言語中,可能利用scanf
跟printf
函數來輸入跟輸出整數。
2.1 利用scanf
輸入整數
#include <stdio.h>
int main() {
int number;
printf("請輸入一個整數: ");
scanf("%d", &number);
printf("你輸入的整數是: %d\n", number);
return 0;
}
2.2 利用printf
輸出整數
#include <stdio.h>
int main() {
int num = -123;
printf("The signed integer is: %d\n", num);
return 0;
}
3. 整數運算
C言語支撐基本的整數運算,包含加、減、乘、除跟取余。
3.1 基本運算示例
#include <stdio.h>
int main() {
int a = 10;
int b = 5;
printf("加法: %d + %d = %d\n", a, b, a + b);
printf("減法: %d - %d = %d\n", a, b, a - b);
printf("乘法: %d * %d = %d\n", a, b, a * b);
printf("除法: %d / %d = %d\n", a, b, a / b);
printf("取余: %d %% %d = %d\n", a, b, a % b);
return 0;
}
4. 整數處理技能
4.1 整數溢出
當整數運算的成果超出其範例所能表示的範疇時,會產生溢出。在C言語中,溢出平日會招致不決義行動。
4.2 檢查溢出
#include <stdio.h>
#include <limits.h>
int main() {
int a = INT_MAX;
int b = 1;
if (a > 0) {
printf("溢出: %d + %d\n", a, b);
} else {
printf("不溢出: %d + %d\n", a, b);
}
return 0;
}
4.3 利用long long
範例
為了處理更大年夜的整數,可能利用long long
範例。
#include <stdio.h>
int main() {
long long a = LLONG_MAX;
long long b = 1;
printf("加法: %lld + %lld = %lld\n", a, b, a + b);
return 0;
}
5. 困難處理
5.1 整數反轉
#include <stdio.h>
#include <limits.h>
int reverse(int x) {
int res = 0;
while (x != 0) {
int pop = x % 10;
x /= 10;
if (res > INT_MAX / 10 || (res == INT_MAX / 10 && pop > 7)) return 0;
if (res < INT_MIN / 10 || (res == INT_MIN / 10 && pop < -8)) return 0;
res = res * 10 + pop;
}
return res;
}
int main() {
int number = 123;
printf("原始整數: %d\n", number);
printf("反轉後的整數: %d\n", reverse(number));
return 0;
}
5.2 超長整數運算
對超長整數的運算,可能利用字元串或數組來表示跟存儲這些數。
#include <stdio.h>
#include <string.h>
void addStrings(char* num1, char* num2, char* result) {
int len1 = strlen(num1);
int len2 = strlen(num2);
int carry = 0;
int i = len1 - 1;
int j = len2 - 1;
int k = 0;
while (i >= 0 || j >= 0 || carry) {
int sum = carry;
if (i >= 0) {
sum += num1[i--] - '0';
}
if (j >= 0) {
sum += num2[j--] - '0';
}
carry = sum / 10;
result[k++] = (sum % 10) + '0';
}
result[k] = '\0';
reverse(result);
}
int main() {
char num1[] = "12345678901234567890";
char num2[] = "98765432109876543210";
char result[100];
addStrings(num1, num2, result);
printf("跟: %s\n", result);
return 0;
}
以上是C言語中整數處理的一些基本技能跟困難處理方法。經由過程進修跟現實,妳可能更好地控制C言語的整數處理才能。