引言
在打算機科學中,進制轉換是一個基本且重要的不雅點。C言語作為一種廣泛利用的編程言語,供給了多種方法來停止差別進制之間的轉換。本文將具體介紹C言語中怎樣實現十進制、二進制跟十六進制之間的轉換,並供給響應的代碼示例。
十進制與二進制轉換
十進制轉二進制
將十進制數轉換為二進制數的方法是:壹直地將十進制數除以2,記錄下每次的餘數。當商為0時,結束除法操縱。將這些餘數從下往上陳列,即可掉掉落對應的二進制數。
代碼示例
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[32]; // 假設十進制數不超越32位
int index = 0;
while (decimal > 0) {
binary[index++] = decimal % 2;
decimal = decimal / 2;
}
// 輸出二進制數
for (int i = index - 1; i >= 0; i--) {
printf("%d", binary[i]);
}
}
int main() {
int decimal = 13;
printf("十進制數 %d 轉換為二進制數是:", decimal);
decimalToBinary(decimal);
printf("\n");
return 0;
}
二進制轉十進制
將二進制數轉換為十進制數的方法是:將二進制數的每一位乘以其對應的2的冪次方,然後將全部成果相加。
代碼示例
#include <stdio.h>
int binaryToDecimal(int binary) {
int decimal = 0;
int base = 1;
while (binary > 0) {
decimal += (binary % 10) * base;
base *= 2;
binary /= 10;
}
return decimal;
}
int main() {
int binary = 1101;
printf("二進制數 %d 轉換為十進制數是:", binary);
printf("%d\n", binaryToDecimal(binary));
return 0;
}
十進制與十六進制轉換
十進制轉十六進制
將十進制數轉換為十六進制數的方法與二進制類似,但須要處理更大年夜的基數(16)。具體步調是:壹直地將十進制數除以16,記錄下每次的餘數。當商為0時,結束除法操縱。將這些餘數從下往上陳列,即可掉掉落對應的十六進制數。
代碼示例
#include <stdio.h>
void decimalToHexadecimal(int decimal) {
int hexadecimal[10]; // 假設十進制數不超越32位
int index = 0;
while (decimal > 0) {
if (decimal % 16 < 10) {
hexadecimal[index++] = decimal % 16;
} else {
hexadecimal[index++] = 10 + (decimal % 16) - 10;
}
decimal = decimal / 16;
}
// 輸出十六進制數
for (int i = index - 1; i >= 0; i--) {
if (hexadecimal[i] < 10) {
printf("%d", hexadecimal[i]);
} else {
printf("%c", 'A' + hexadecimal[i] - 10);
}
}
}
int main() {
int decimal = 946;
printf("十進制數 %d 轉換為十六進制數是:", decimal);
decimalToHexadecimal(decimal);
printf("\n");
return 0;
}
十六進制轉十進制
將十六進制數轉換為十進制數的方法與二進制轉十進制類似,但須要處理更大年夜的基數(16)。
代碼示例
#include <stdio.h>
int hexadecimalToDecimal(int hexadecimal) {
int decimal = 0;
int base = 1;
while (hexadecimal > 0) {
int digit = hexadecimal % 16;
if (digit >= 10) {
digit = digit - 10 + 'A';
}
decimal += (digit * base);
base *= 16;
hexadecimal /= 16;
}
return decimal;
}
int main() {
int hexadecimal = 3B2;
printf("十六進制數 %X 轉換為十進制數是:", hexadecimal);
printf("%d\n", hexadecimalToDecimal(hexadecimal));
return 0;
}
總結
經由過程以上代碼示例,我們可能看到C言語中進制轉換的實現方法。這些技能對懂得打算機科學中的數據表示跟處理至關重要。控制這些進制轉換方法將有助於你更好地停止編程跟算法計劃。