#include <stdio.h>
unsigned char test(unsigned char *, int, int);
int main(void)
{
     unsigned char message[5] = {'A', 'B', 'C', 'D'};
     unsigned char ans;

     test(&message[4], 5, 1);
     printf("송신시 결과 = %d\n", (int) message[4]);
     ans = test(&message[4], 5, 2);
     printf("수신시 결과 = %d\n", (int) ans);

     return 0;
}

unsigned char test(unsigned char *p, int cnt, int flag)
{
     unsigned short int hap = 0;
     unsigned char *z;

     z=p;
     while(cnt--)
     {
          hap = hap + *p--;
          if (hap & 0xFF00)
          {
               hap = hap & 0xFF;
               hap = hap + 1;
          }
          printf("cnt = %d hap = %d\n", cnt, hap);
     }
     
     if (flag == 1)
     {
          *z = ~(hap & 0xFF);
          return 0;
     }
     else
          return ~(hap & 0xFF);
}
-----------------------------------------------------------------------
<보기1>

문자

10진수

16진수

A

B

C

D

65

66

67

68

0x41

0x42

0x43

0x44


<보기2>

version(4)

HLEN(4)

type of service(8)

total length(16)

identification(16)

flags(3)

fragment offset(13)

time to live(8)

protocol(8)

header checksum(16)

source IP address(32)

destination IP address(32)



인터넷에서 정보를 송수신할 때 사용되는 오류 검출 기법을 간략하게 구현한 후, IPv4헤더에서 이 기법의 실제 계산과정을 알아보고자한다. <보기1>에주어진ASCII코드 값을 참조하여 화면상에 출력되는 결과를 순서대로 쓰시오. 
그리고 <보기2>의 헤더를 송신할 때 그 필드의 값을 계산하는 과정을 설명하시오.(단, <보기2>에서 (  )안에 표기된 단위는 bit이고, HLEN은 header length의 약자임),

형들..  난 프로그래머가 아님을 미리 밝혀
근데 내가 준비하는 시험과목중에 C언어가 있기에 지금 윤성우 C프로그래밍 책으로 씨름한지 일주일이됐어.
인강은 거의 다듣고 시험문제를 봤지. 마치 흑형의 펀치를 맞은것같아 이렇게 도움을 청해.
도대체 어느 깊이   까지 공부해야하는거야? 저정도 부담없이 해석하는데까지 얼마나 걸려?
내가 준비해야되는 분야가 꽤 많은데다 올해 10월정도에 시험이 있어서 마음만 급해지네;;