지금 SoEn 연구소 사이트를 보면서 마구 연습 중이에요.ㅎㅎ [참고http://soen.kr/ ]

1. 삼항 조건 연산자

k=(i>j) ? i : j

해석 : k 값 = i가 j보다 크면 i를 그렇지 않으면 j를 대입

'?'는 '~면'으로 ':'을 그렇지 않으면으로 해석하면 되요. 삼항 조건 연산자~ 매력적이네요.ㅎㅎ


2. 콤마 연산자

for 문 조건식에 콤마를 적어 2개를 입력했는데 콤마도 연산자라고 하네요. 우선순위는 아래 SoEn 자료와 같이 가장 꼴지!! 하지만 꼴지조차 의미 있다는 사실!!ㅎㅎ왼쪽 우선이니까 i를 1씩 증가 시키는 것이 우선이겠네요.


3. 함수(ADD)

ADD라는 함수를 만들어 보는 예 랍니다. 함수란 이런거구나~ 하더이다. void 형의 의미를 이곳에서 알았지요.ㅎㅎ

4. 10진수 -> 16진수

엥 도통 뭔소리인지 모르겠죠..ㅎㅎ SoEN 고수님의 설명들 들어보죠..

[ 0~255사이의 10진수는 8비트 크기를 가지며 상하위 4비트가 16진수 한 자리가 되어 두 자리의 16진수로 표기할 수 있다. 상하위 니블을 hi, low 변수에 분리하기 위해 >> 연산자와 & 연산자를 사용했다. 상위에 있는 4비트값을 추출하려면 >> 연산자로 4회 쉬프트하면 되고 하위 4비트만을 남기려면 & 연산자로 상위 4비트를 마스크 오프시키면 된다.(Line 22)

이렇게 구한 각 자리값을 16진 문자로 바꾸려면 일단 '0'을 더하고 9보다 더 큰 값일 경우 7을 곱한다.(Line 8) 이 식에 대해서는 앞서 이미 설명한 바(ㅜㅜ모르겠네요)가 있는데 관계 연산문이 참일 때 1을 리턴한다는 점을 이용하여 한 문장으로 대응되는 문자를 구할 수 있다.
Dec2HexChar 함수는 정수값을 인수로 전달받아 이 값에 대응되는 16진 문자 하나를 찾아 주는데 d가 16이상일 경우, 즉 16진 문자 하나의 범위를 넘어설 경우는 에러를 의미하는 '?'를 리턴하도록 했다.(Line 5,6) main에서는 변경하고자 하는 정수값을 이 함수로 전달하기만 하면 대응되는 문자를 즉시 얻을 수 있고 char 타입을 리턴하므로 함수 호출문을 %c 서식과 곧바로 대응시킬 수도 있다.(Line 21,22) ]

한 30% 정도 이해 한 듯 싶네요. 시프트와 & 연산자의 의미도 헷갈리고요. 첫술에 배부르랴? 일단 패스!

고수가 되는 그날 까지 반복숙달!! 화이팅!

+ Recent posts