c语言编写程序,将十进制非负正整数转换为二进制整数。 转换方法是:除2取余,直道商为0,例如,将13转换为二进制 13/2=6…1 6/2=3…0 3/2=1…1 1/2=0…1 则13转换为二进制位1101 输入:非负整数 输出:二进制整数,位数不超过32位。 【输入输出样例】 输入: 13 输出: 1101 提示:结果可保存在字符数组中,逆序输出。
时间: 2024-03-03 08:49:32 浏览: 23
以下是C语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
int main(){
int num, i = 0;
char res[33]; // 保存结果的字符数组
scanf("%d", &num);
if(num == 0){
printf("%d", num);
return 0;
}
while(num != 0){
res[i++] = num % 2 + '0'; // 将余数转换为字符
num /= 2;
}
res[i] = '\0'; // 字符串结尾标志
for(i=strlen(res)-1; i>=0; i--) // 逆序输出字符数组
printf("%c", res[i]);
return 0;
}
```
输入样例:
```
13
```
输出样例:
```
1101
```
相关问题
用c语言编写一个程序:将一个十进制数正整数d转换为相应的二进制数
下面是用C语言实现将十进制数转换为二进制数的程序:
```c
#include <stdio.h>
int main() {
int d, i, j, bin[32];
printf("请输入一个正整数:");
scanf("%d", &d);
if (d < 0) {
printf("输入的不是正整数!\n");
return 0;
}
i = 0;
while (d > 0) {
bin[i] = d % 2;
d = d / 2;
i++;
}
printf("转换为二进制数为:");
for (j = i - 1; j >= 0; j--) {
printf("%d", bin[j]);
}
printf("\n");
return 0;
}
```
程序的运行结果如下:
```
请输入一个正整数:10
转换为二进制数为:1010
```
程序的实现思路是将输入的十进制数不断除以2,每次取余并将余数存储到一个数组中,直到商为0为止。最后再倒序输出数组中的每一位,就得到了该数的二进制表示。
用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` 数组大小。