Тема: Не вистачає одиниці в числі)
Програма, яка переводить двійково-десятквоий код в десятковий. Ніби все працює вірно, але при видачі результату десь губиться одиниця, тобто якщо я ввів дв.-десятковим кодом число 4956, то виводить 4955.
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
int main() {
    char numb[30],*temp=numb;
   int n=0,m=0,tempnumb=0,tn=0;
   gets(numb);
   while(*(temp+1)!='\0') //шукаємо останній символ рядка
   {
       temp++;
   }
   for(char* i=temp;i>=numb;i--) 
   {
    while(*i!=' ') // проходимо циклом по кожній тетраді
    {
       if(*i=='1') 
         tempnumb+=pow(2,m);// тут формуємо десяткове представлення тетради
       i--;
       m++;
    }
       tn+=tempnumb*pow(10,n);//тут додаємо розряд тетради
       n++;
       m=0;
       tempnumb=0;
   }
   cout<<tn;
   cin.ignore();
   cin.get();
   return 0;
}