最佳答案
引言
在打算機科學中,進制轉換是基本且重要的技能。C言語作為一種廣泛利用的編程言語,供給了多種方法來實現差別進制之間的轉換。本文將具體介紹C言語中進制轉換的道理跟技能,幫助讀者輕鬆控制這一技能。
一、進制轉換的基本道理
進制轉換是指將一個數字從一個基數(進制)轉換為另一個基數。罕見的進制有二進制、八進制、十進制跟十六進制。以下是一些基本道理:
- 二進制:基數為2,每一位上的數字只能是0或1。
- 八進制:基數為8,每一位上的數字可能是0到7。
- 十進制:基數為10,每一位上的數字可能是0到9。
- 十六進制:基數為16,每一位上的數字可能是0到9或A到F。
進制轉換的基本方法是利用除基取余法。比方,將十進制數轉換為二進制數,可能經由過程壹直除以2並記錄餘數來實現。
二、C言語中的進制轉換方法
1. 十進制轉二進制
#include <stdio.h>
void decimalToBinary(int n) {
int binary[32]; // 假設二進制數不超越32位
int i = 0;
while (n > 0) {
binary[i++] = n % 2;
n = n / 2;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", binary[j]);
}
int main() {
int num = 87;
decimalToBinary(num);
return 0;
}
2. 十進制轉八進制
#include <stdio.h>
void decimalToOctal(int n) {
int octal[10];
int i = 0;
while (n > 0) {
octal[i++] = n % 8;
n = n / 8;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", octal[j]);
}
int main() {
int num = 87;
decimalToOctal(num);
return 0;
}
3. 十進制轉十六進制
#include <stdio.h>
void decimalToHexadecimal(int n) {
int hexaDeciNum;
char hexaDeciStr[100];
int i = 0;
while (n > 0) {
hexaDeciNum = n % 16;
if (hexaDeciNum < 10)
hexaDeciStr[i++] = hexaDeciNum + 48;
else
hexaDeciStr[i++] = hexaDeciNum + 55;
n = n / 16;
}
for (int j = i - 1; j >= 0; j--)
printf("%c", hexaDeciStr[j]);
}
int main() {
int num = 87;
decimalToHexadecimal(num);
return 0;
}
4. 二進制轉十進制
#include <stdio.h>
int binaryToDecimal(int n) {
int decimal = 0, base = 1;
while (n > 0) {
int temp = n % 10;
decimal += temp * base;
base = base * 2;
n = n / 10;
}
return decimal;
}
int main() {
int binaryNum = 1110101;
printf("十進制數: %d", binaryToDecimal(binaryNum));
return 0;
}
三、總結
經由過程以上方法,我們可能輕鬆地在C言語中實現差別進制之間的轉換。控制這些技能,不只有助於我們更好地懂得打算機科學中的進制不雅點,還能在編程現實中處理現實成績。