Я пытаюсь объединить целые числа, превратив их в строку, а затем превратить их обратно в целое число, чтобы сложить в одну строку / целое число. Я использую пример конкатенации, который я получил от Google, но он не работает, и я понятия не имею, почему
Я пробовал другие примеры concat, но они тоже не работали. Также попробовал х * 10
х + у
так как я работаю с однозначными числами / бинарные
Это моя функция concat
int concat(int a, int b)
{
char s1[20];
char s2[20];
sprintf(s1, "%d", a);
sprintf(s2, "%d", b);
strcat(s1, s2);
int c = atoi(s1);
return c;
}
а это остальное
for (i = 0; i < countr+1; i++)
{
b = theArr[i];
r = 0;
count = 0;
if (b < 0)
{
tempval = (unsigned int)b;
while (tempval != 0)
{
n = tempval % 2;
tempval /= 2;
m[r] = n;
count += 1; r++;
}
for (k = count - 1; k >= 0; k--)
{
printf("%d", m[k]);
if (tempC == 0)
{
testOutput = m[k];
tempC++;
}
else
{
testOutput = concat(testOutput, m[k]);
}
}
tempC = 0;
printf("\nHERE:%d\n", testOutput);
printf("\n");
}else
{
while (b != 0)
{
n = b % 2;
b /= 2;
m[r] = n;
count += 1; r++;
}
for (k = count - 1; k >= 0; k--)
{
printf("%d", m[k]);
printf("%d", m[k]);
if (tempC == 0)
{
testOutput = m[k];
tempC++;
}
else
{
testOutput = concat(testOutput, m[k]);
}
}
tempC = 0;
printf("\nHERE:%d\n", testOutput);
printf("\n");
}
}
В массиве "m" есть либо 1, либо 0 в каждом слоте.
Я пытаюсь сложить так, например,
если m [10] = {0,1,0,1,1,0,0,0,1,1};
«testOutput» будет «0101100011»
мое значение с плавающей точкой: 271459,593750
и он выплевывает: 1240481687
edit: theArr имеет числа с плавающей точкой