用printf实现进制转化
时间: 2024-01-02 10:20:11 浏览: 35
使用printf函数可以实现进制转换,其中%o表示八进制,%x表示十六进制,%d表示十进制。此外,还可以使用itoa函数将十进制转换为其他进制的字符串表示。下面是一个示例代码:
```
#include <stdio.h>
int main() {
int a = 123;
printf("八进制:%o\n", a);
printf("十六进制:%x\n", a);
printf("十进制:%d\n", a);
char s[100];
itoa(a, s, 2);
printf("二进制:%s\n", s);
return 0;
}
```
执行结果为:
```
八进制:173
十六进制:7b
十进制:123
二进制:1111011
```
相关问题
用C语言实现10进制转化为32进制程序
你可以使用以下代码来实现将十进制数转换为三十二进制数的程序:
```c
#include <stdio.h>
void decimalToBase32(int decimal) {
char base32[32] = "0123456789ABCDEFGHIJKLMNOPQRSTUV";
char result[32];
int index = 0;
while (decimal > 0) {
int remainder = decimal % 32;
result[index++] = base32[remainder];
decimal /= 32;
}
for (int i = index - 1; i >= 0; i--) {
printf("%c", result[i]);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
printf("32-base representation: ");
decimalToBase32(decimal);
return 0;
}
```
这个程序首先定义了一个包含所有32个基数字符的字符串 `base32`。然后,使用循环将输入的十进制数除以32,并将余数对应的字符存储在 `result` 数组中。最后,倒序打印 `result` 数组中的字符,得到转换后的三十二进制表示。
请注意,此程序仅适用于非负的十进制输入。如果输入为负数,则需要对其进行适当的处理。
十进制转化为二进制c语言用函数实现
好的,我可以回答这个问题。您可以使用以下函数将十进制转化为二进制:
```C
void decimalToBinary(int decimalNumber) {
int binaryNumber[32];
int i = 0;
while (decimalNumber > 0) {
binaryNumber[i] = decimalNumber % 2;
decimalNumber = decimalNumber / 2;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binaryNumber[j]);
}
}
```
您可以将要转换的十进制数作为参数传递给此函数。该函数使用一个整型数组来存储二进制数,并使用 while 循环将十进制数转换为二进制数。最后,使用 for 循环以相反的顺序打印二进制数字。