반응형

언어 자료구조 알고리즘/C언어 예제 104

재귀함수 형상화

//아래의 코드를 main함수에서 호출하는 부분을 박스로 타고 들어가는 모습을 형상화해 보았습니다. //유심히 보시고 재귀함수의 원리를 이해하는데 도움이 되었으면 합니다. #include void move(int from, int to) { printf("%d %d\n", from, to); } void A(int n, int from, int by, int to) { if(n==1) move(from, to);// move1 else { A(n-1, from, to, by); // A1 move(from, to); // move2 A(n-1, by, from, to); // A2 } } void main() { A(3,1,2,3); } //형상화 부분 void main() { A(3,1,2,3); in..

한글 초성 알아내기

한글 초성 알아내기 원리는 다음과 같습니다. (지식iN질문 답변하다가 만들어 봤습니다.) 입력 문자열이 "가"보다 크거나 같고 "나"보다 작으면 초성은 "ㄱ" 입력 문자열이 "나"보다 크거나 같고 "나"보다 작으면 초성은 "ㄴ" 입력 문자열이 "다"보다 크거나 같고 "나"보다 작으면 초성은 "ㄷ" ...중략합니다... 참고로 한글의 마지막 글자는 힣 인데 C언어에 등록된 마지막 한글은 힛 입니다. 억울할 따름이죠. #include const char *GetInitialSound(const char *han_src) { const char *isarr[14] = {"ㄱ","ㄴ","ㄷ","ㄹ","ㅁ","ㅂ","ㅅ", "ㅇ","ㅈ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"}; const char *isarr2[1..

쉬프트 연산

쉬프트 연산 좌항이 int형일 경우에 >는 산술 쉬프트입니다. 좌항이 unsigned일 경우에는 모두 논리 쉬프트입니다. 아래 디스어셈블리 창을 참고하세요. (s는 쉬프트,h은 논리, a는 산술 , l은 좌측, r은 우측) shl : 좌측논리쉬프트, sar:우측산술쉬프트, shr:우측논리쉬프트 즉, 차이는 우측 쉬프트연산에서 차이가 발생하게 됩니다. 논리 쉬프트는 빈 자리를 0으로 채웁니다. 산술 쉬프트는 빈 자리를 부호비트로 채웁니다. 예제를 통해 풀어봅시다. int fun1(unsigned word) { return (int) ((word 24); } int fun2(unsigned word) { return ((int) word 24); } 127은 이진수로 표기하면 0000 0000 0000 00..

반응형