간단한 수도코드입니다. 무슨 뜻인지 좀 부탁드립니다.

ktlsu1231의 이미지

안녕하세요.

TEXT문서를 읽어 Checksum을 구하는 코드 중 일 부분인데요.

이래저래 해보아도 결과값이 올바르지가 않아서 고민중입니다.

아래 수도 코드해설 부탁드립니다. T-T 아래 부분이 잘 이해가 가지 않습니다.

감사합니다.


BEGIN 
	CheckSum = 0;	//CheckSUM initialisation

                          :
	FOR each character of “CHECKSUM <TAB> AA” DO
		CheckSum=CheckSum+ORD(Character);
		IF Not(Last Character) THEN	// Not for the last “A” character
			CheckSum=CheckSum*16;
		CheckSum=CheckSum MOD 251;
	DONE
                          :
END

hayarobi의 이미지

문자 하나마다 체크섬을 구해서 계속 중첩해서 더해가는데, 캐릭터마다 아스키코드값을 받아다 16을 곱하고 뒷 문자를 더한 다음 251로 나눈 나머지를 가져온다...

아, 설명하려니 뒷골이...

    char * checksumstr=some_source_str;
    int checksum=0;
    int size = strlen(checksumstr);
    int i;
    for(i=0;i<size;i++)
    {
        checksum += *checksumstr++;
        if( *checksumstr )
            checksum += 16;
        checksum %= 251;
    }

---------- 시그 *****
저도 세벌식을 씁니다.
M$윈도우즈, 리눅스, 맥오에스텐, 맥오에스클래식을 모두 엔드유저 수준으로 쓴답니다.
http://psg9.egloos.com

=================
잠못자는 한솔아빠