지금 SoEn 연구소 사이트를 보면서 마구 연습 중이에요.ㅎㅎ [참고http://soen.kr/ ]
1. 삼항 조건 연산자
![](https://t1.daumcdn.net/cfile/tistory/2250C03B56EB18A431)
k=(i>j) ? i : j
해석 : k 값 = i가 j보다 크면 i를 그렇지 않으면 j를 대입
'?'는 '~면'으로 ':'을 그렇지 않으면으로 해석하면 되요. 삼항 조건 연산자~ 매력적이네요.ㅎㅎ
![](https://t1.daumcdn.net/cfile/tistory/2370954156EB18A430)
2. 콤마 연산자
![](https://t1.daumcdn.net/cfile/tistory/2126914356EB18A409)
for 문 조건식에 콤마를 적어 2개를 입력했는데 콤마도 연산자라고 하네요. 우선순위는 아래 SoEn 자료와 같이 가장 꼴지!! 하지만 꼴지조차 의미 있다는 사실!!ㅎㅎ왼쪽 우선이니까 i를 1씩 증가 시키는 것이 우선이겠네요.
![](https://t1.daumcdn.net/cfile/tistory/2277563C56EB18A42E)
![](https://t1.daumcdn.net/cfile/tistory/276FA13F56EB18A537)
3. 함수(ADD)
ADD라는 함수를 만들어 보는 예 랍니다. 함수란 이런거구나~ 하더이다. void 형의 의미를 이곳에서 알았지요.ㅎㅎ
![](https://t1.daumcdn.net/cfile/tistory/2530CF3E56EB18A50B)
![](https://t1.daumcdn.net/cfile/tistory/215A3C3556EB18A502)
4. 10진수 -> 16진수
![](https://t1.daumcdn.net/cfile/tistory/26077A3956EB18A502)
엥 도통 뭔소리인지 모르겠죠..ㅎㅎ 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% 정도 이해 한 듯 싶네요. 시프트와 & 연산자의 의미도 헷갈리고요. 첫술에 배부르랴? 일단 패스!
고수가 되는 그날 까지 반복숙달!! 화이팅!