gpt4 book ai didi

在 C 中将十进制整数转换为二进制字符串

转载 作者:行者123 更新时间:2023-11-30 19:06:10 25 4
gpt4 key购买 nike

下面是我尝试的代码。我使用了函数 char* dectobin(int ) 来做到这一点。我首先将十进制整数转换为二进制整数(保存在二进制中),然后将该二进制整数转换为字符数组(首先反转,然后按正确的顺序)。但我没有得到正确的输出。谁能告诉我问题出在哪里?

#include <stdio.h>
#include <math.h>
char* dectobin(int dec_num);
main()
{
int num;
printf("Enter the integer\n");
scanf("%d",&num);
char* bin_string=dectobin(num);
printf("The binary string representation is %s\n",bin_string);
}
char* dectobin(int dec_num)
{
int remainder;
int base=1;
int binary=0;
int count=0;
int n;

while (dec_num > 0)

{

remainder = dec_num % 2;

binary = binary + remainder * base;

dec_num = dec_num / 2;

base = base * 10;

}

n = log10(binary) + 1;
int i;
char* numberArrayreverse = calloc(n, sizeof(char));
for ( i = 0; i < n; ++i, binary /= 10 )
{
numberArrayreverse[i] = binary % 10;
}
char* numberArray=calloc(n, sizeof(char));

int j=0;
for(;j<n;j++)
{
numberArray[j]=numberArrayreverse[n-1-j];
}
//free(numberArrayreverse);
return numberArray;
}

最佳答案

numberArrayreverse不正确,需要将整数转换为字符。

numberArrayreverse[i] = binary % 10 + '0';

关于在 C 中将十进制整数转换为二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48493826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com