编一段可以将输入的十进制整数num转换成二进制字符串输出的c语言代码
时间: 2023-07-16 07:13:32 浏览: 65
下面是将十进制整数num转换成二进制字符串输出的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
void dec2bin(int num) {
int binary[32], i = 0;
while (num > 0) {
binary[i] = num % 2;
num = num / 2;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int num;
printf("Please enter a decimal number: ");
scanf("%d", &num);
printf("The binary representation of %d is: ", num);
dec2bin(num);
return 0;
}
```
运行结果:
```
Please enter a decimal number: 23
The binary representation of 23 is: 10111
```
相关问题
用c语言编写程序:将十进制整数num转换成二进制字符串输出
好的,以下是用 C 语言编写的程序,可以将十进制整数转换为二进制字符串并输出:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, i, j;
char binary[32]; // 最多存储32位二进制数
printf("请输入一个十进制整数:");
scanf("%d", &num);
if(num == 0) // 特殊情况,直接输出0即可
{
printf("0");
return 0;
}
// 将十进制数转换为二进制数
for(i = 0; num > 0; i++)
{
binary[i] = num % 2 + '0'; // 将余数转换为字符
num = num / 2;
}
// 将二进制数字符串反转
for(j = 0; j < i / 2; j++)
{
char temp = binary[j];
binary[j] = binary[i - j - 1];
binary[i - j - 1] = temp;
}
printf("转换后的二进制数为:%s", binary);
return 0;
}
```
输入一个十进制整数,程序会将其转换为二进制字符串并输出。如果输入的整数是0,直接输出0即可。如果需要转换的二进制数超过了32位,需要修改程序中的 `binary` 数组大小。
c语言编码:十六进制字符串转换成十进制非负整数
可以使用C语言的标准库函数`strtol`将十六进制字符串转换成十进制非负整数。具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_str[] = "3F8A"; // 十六进制字符串
char *endptr; // 指向转换后第一个无效字符的指针
unsigned long num = strtol(hex_str, &endptr, 16); // 将十六进制字符串转换成十进制非负整数
if (*endptr != '\0') { // 如果转换后还有无效字符,则说明转换失败
printf("转换失败\n");
} else {
printf("转换成功,结果为:%lu\n", num);
}
return 0;
}
```
输出结果为:
```
转换成功,结果为:16266
```
其中,`strtol`函数的第一个参数为待转换的字符串,第二个参数为指向转换后第一个无效字符的指针,第三个参数为进制数。在本例中,进制数为16,表示将字符串按照十六进制数的规则进行转换。如果转换成功,函数返回转换后的十进制非负整数。如果转换失败,则函数返回0。