Обьяснить часть кода - C (СИ)

Формулировка задачи:

Не могу разобраться Прошу дописать несколько комментов к коду
#include <stdio.h>
#include <math.h>
int main()
{
int digit_to_int(char d)
{
 char str[2];
 str[0] = d;
 str[1] = '\0';
 return (int) strtol(str, NULL, 10);
}
char a[7];
char b[7];
char t;
int an,bn;
int a_bits[7];
int b_bits[7];
int res[8];
int s=0;
int i;
int temp;
    printf("Enter the first argument:");
    gets(a);
    printf("Enter the second argument:");
    gets(b);
    for (i=0; i<=7; i++)
    {
         a_bits[i]=digit_to_int(a[i]);
         b_bits[i]=digit_to_int(b[i]);
    }
    an=0;
    bn=0;   
    for (i=0; i<=7; i++)
    {
        an=an+(a_bits[i]<<(7-i));
        bn=bn+(b_bits[i]<<(7-i));
    }   
            
    
    s=an+bn;
    temp=s;
    printf("%s"," ");
    printf("%s\n",a);
 
    printf("%s"," ");
    printf("%s\n",b);
    
    for (i=8; i>=0; i--)
    {
     res[i]=temp % 2;
     temp=temp/2;
    }
    for (i=0; i<=8; i++)
    {
     printf("%d",res[i]);
    }
    return 0;
}
Особенно к части:
int main()
{
int digit_to_int(char d)
{
 char str[2];
 str[0] = d;
 str[1] = '\0';
 return (int) strtol(str, NULL, 10);
}
Буду крайне благодарен

Код к задаче: «Обьяснить часть кода - C (СИ)»

textual
#define digit_to_int(x) (((x)^'0')?1:0)

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

9   голосов, оценка 4.222 из 5


СОХРАНИТЬ ССЫЛКУ