进制转换的c语言编程代码是什么
其他 12
-
在C语言中,可以通过以下代码实现进制转换:
#include <stdio.h> // 函数声明 void decimalToBinary(int decimal); void decimalToOctal(int decimal); void decimalToHexadecimal(int decimal); int main() { int decimal; printf("请输入一个十进制数:"); scanf("%d", &decimal); printf("转换为二进制:"); decimalToBinary(decimal); printf("转换为八进制:"); decimalToOctal(decimal); printf("转换为十六进制:"); decimalToHexadecimal(decimal); return 0; } // 十进制转二进制 void decimalToBinary(int decimal) { int binary[32]; // 用于存储二进制数的数组 int i = 0; while (decimal > 0) { binary[i] = decimal % 2; decimal = decimal / 2; i++; } // 从后往前输出二进制数 for (int j = i - 1; j >= 0; j--) { printf("%d", binary[j]); } printf("\n"); } // 十进制转八进制 void decimalToOctal(int decimal) { int octal[32]; // 用于存储八进制数的数组 int i = 0; while (decimal > 0) { octal[i] = decimal % 8; decimal = decimal / 8; i++; } // 从后往前输出八进制数 for (int j = i - 1; j >= 0; j--) { printf("%d", octal[j]); } printf("\n"); } // 十进制转十六进制 void decimalToHexadecimal(int decimal) { char hexadecimal[32]; // 用于存储十六进制数的数组 int i = 0; while (decimal > 0) { int remainder = decimal % 16; if (remainder < 10) { hexadecimal[i] = remainder + '0'; // 将数字转换为字符 } else { hexadecimal[i] = remainder + 55; // 将余数转换为十六进制字母 } decimal = decimal / 16; i++; } // 从后往前输出十六进制数 for (int j = i - 1; j >= 0; j--) { printf("%c", hexadecimal[j]); } printf("\n"); }以上代码实现了将输入的十进制数转换为二进制、八进制和十六进制的功能。通过调用相应的函数,可以将十进制数转换为对应进制的数值,并输出结果。
1年前 -
下面是一个将十进制数转换为其他进制数(二进制、八进制、十六进制)的C语言编程代码示例:
#include <stdio.h> void convertToBinary(int decimalNum) { int binaryNum[32]; int i = 0; while (decimalNum > 0) { binaryNum[i] = decimalNum % 2; decimalNum = decimalNum / 2; i++; } printf("二进制数为:"); for (int j = i - 1; j >= 0; j--) { printf("%d", binaryNum[j]); } printf("\n"); } void convertToOctal(int decimalNum) { int octalNum[100]; int i = 0; while (decimalNum > 0) { octalNum[i] = decimalNum % 8; decimalNum = decimalNum / 8; i++; } printf("八进制数为:"); for (int j = i - 1; j >= 0; j--) { printf("%d", octalNum[j]); } printf("\n"); } void convertToHexadecimal(int decimalNum) { char hexadecimalNum[100]; int i = 0; while (decimalNum > 0) { int remainder = decimalNum % 16; if (remainder < 10) { hexadecimalNum[i] = remainder + 48; } else { hexadecimalNum[i] = remainder + 55; } decimalNum = decimalNum / 16; i++; } printf("十六进制数为:"); for (int j = i - 1; j >= 0; j--) { printf("%c", hexadecimalNum[j]); } printf("\n"); } int main() { int decimalNum; printf("请输入一个十进制数:"); scanf("%d", &decimalNum); convertToBinary(decimalNum); convertToOctal(decimalNum); convertToHexadecimal(decimalNum); return 0; }这段代码首先定义了三个函数:
convertToBinary、convertToOctal和convertToHexadecimal,分别用于将十进制数转换为二进制、八进制和十六进制。然后在main函数中,先获取用户输入的十进制数,然后依次调用这三个函数进行转换,并输出结果。1年前 -
进制转换是将一个数从一种进制表示转换为另一种进制表示。在C语言中,可以使用以下代码实现进制转换。
#include <stdio.h> // 函数声明 void decimalToBinary(int decimal); void binaryToDecimal(int binary); void decimalToOctal(int decimal); void octalToDecimal(int octal); void decimalToHexadecimal(int decimal); void hexadecimalToDecimal(char hexadecimal[]); int main() { int choice; int decimal; int binary; int octal; char hexadecimal[100]; while (1) { printf("请选择转换类型:\n"); printf("1. 十进制转二进制\n"); printf("2. 二进制转十进制\n"); printf("3. 十进制转八进制\n"); printf("4. 八进制转十进制\n"); printf("5. 十进制转十六进制\n"); printf("6. 十六进制转十进制\n"); printf("0. 退出\n"); printf("请输入您的选择:"); scanf("%d", &choice); switch (choice) { case 1: printf("请输入一个十进制数:"); scanf("%d", &decimal); decimalToBinary(decimal); break; case 2: printf("请输入一个二进制数:"); scanf("%d", &binary); binaryToDecimal(binary); break; case 3: printf("请输入一个十进制数:"); scanf("%d", &decimal); decimalToOctal(decimal); break; case 4: printf("请输入一个八进制数:"); scanf("%d", &octal); octalToDecimal(octal); break; case 5: printf("请输入一个十进制数:"); scanf("%d", &decimal); decimalToHexadecimal(decimal); break; case 6: printf("请输入一个十六进制数:"); scanf("%s", hexadecimal); hexadecimalToDecimal(hexadecimal); break; case 0: printf("退出程序\n"); return 0; default: printf("输入错误,请重新输入\n"); break; } } return 0; } // 十进制转二进制 void decimalToBinary(int decimal) { int binary[32]; int i = 0; while (decimal > 0) { binary[i] = decimal % 2; decimal /= 2; i++; } printf("二进制数为:"); for (int j = i - 1; j >= 0; j--) { printf("%d", binary[j]); } printf("\n"); } // 二进制转十进制 void binaryToDecimal(int binary) { int decimal = 0; int base = 1; while (binary > 0) { int lastDigit = binary % 10; decimal += lastDigit * base; binary /= 10; base *= 2; } printf("十进制数为:%d\n", decimal); } // 十进制转八进制 void decimalToOctal(int decimal) { int octal[100]; int i = 0; while (decimal > 0) { octal[i] = decimal % 8; decimal /= 8; i++; } printf("八进制数为:"); for (int j = i - 1; j >= 0; j--) { printf("%d", octal[j]); } printf("\n"); } // 八进制转十进制 void octalToDecimal(int octal) { int decimal = 0; int base = 1; while (octal > 0) { int lastDigit = octal % 10; decimal += lastDigit * base; octal /= 10; base *= 8; } printf("十进制数为:%d\n", decimal); } // 十进制转十六进制 void decimalToHexadecimal(int decimal) { char hexadecimal[100]; int i = 0; while (decimal > 0) { int remainder = decimal % 16; if (remainder < 10) { hexadecimal[i] = remainder + '0'; } else { hexadecimal[i] = remainder - 10 + 'A'; } decimal /= 16; i++; } printf("十六进制数为:"); for (int j = i - 1; j >= 0; j--) { printf("%c", hexadecimal[j]); } printf("\n"); } // 十六进制转十进制 void hexadecimalToDecimal(char hexadecimal[]) { int decimal = 0; int base = 1; int length = strlen(hexadecimal); for (int i = length - 1; i >= 0; i--) { if (hexadecimal[i] >= '0' && hexadecimal[i] <= '9') { decimal += (hexadecimal[i] - '0') * base; } else if (hexadecimal[i] >= 'A' && hexadecimal[i] <= 'F') { decimal += (hexadecimal[i] - 'A' + 10) * base; } base *= 16; } printf("十进制数为:%d\n", decimal); }以上代码实现了十进制到二进制、二进制到十进制、十进制到八进制、八进制到十进制、十进制到十六进制、十六进制到十进制的转换。在主函数中,使用一个循环来不断接收用户的选择,根据选择调用相应的转换函数。每个转换函数根据进制转换的特点进行相应的计算和输出。
1年前