found the solution
Code:
int number = 0;
char numberchars[] = "12545555685986589";
int i = 0;
int ans = 0;
int carry = 0;
char answerArray[100] = {0};
char remainderArray[100] = {0};
int remindex = 0;
int ansindex = 0;
int remainder = 0;
while( numberchars[i] != '\0' )
{
while( numberchars[i] != '\0' )
{
char currentchar[2] = {0};
currentchar[0]=numberchars[i];
int num = atoi(currentchar);
num += remainder;
remainder = 0;
if ( num < 2 )
{
remainder = num;
if(i>0)
answerArray[ansindex++] = '0';
}
else
{
remainder = num % 2;
int answer = num / 2;
char a[2] = {0};
itoa(answer,a,10);
answerArray[ansindex++] = a[0];
}
i++;
remainder *= 10;
}
char a[2] = {0};
int rval = remainder / 10;
itoa(remainder / 10,a,10);
remainderArray[remindex++] = a[0];
int size = sizeof(answerArray);
memcpy(numberchars,answerArray,sizeof(answerArray));
size = sizeof(answerArray);
memset(answerArray,0,sizeof(answerArray));
ansindex = 0;
remainder = 0;
i=0;
}
char int64[8] = {0};
for(int k=0;remainderArray[k]!= '\0';k++)
{
int64[7-(k/8)] |= ((remainderArray[k]-'0') << (k%8));
}