반응형

전체 647

구조체 정리 C언어

배열은 한가지 Type만을 요소로 갖는다. 그래서 좀 더 다양한 자료들을 사용하기 위해서는 구조체를 사용한다. 배열은 각 요소들의 타입이 같기 때문에 일련적인 수로서 각 요소에 점근 할 수 있었다. 예를들면 arr[7] 이런식이었다. 이런 접근은 포인터 연산인데 각 요소들의 타입이 한가지기 때문에 포인터 연산이 가능했었다. 이제 구조체에 대해서 알아봐야하는데, 이런 근본적인 형태의 차이로 인해서 구조체의 각 요소들에 접근하는 방식은 배열과 차이점이 생길 수 밖에 없게 된다. 그리고 배열에서는 요소라고 하지만, 구조체에서는 멤버변수라고 부른다. 아무튼 여러가지 측면에서 다른 양상을 보이는 두 자료구조는 비교대상이지만 따로 때어놓고 이해하는 것이 편리하다. 구조체의 선언 다음은 구조체를 선언한 코드다. 위 ..

10진수를 2진수로 변환하는 방법

10진수를 2진수로 변환하는 방법입니다. 2로 나누면서 나머지를 오른쪽에 나눌때마다 기입하면서 더이상 나눠지지 않을 때 까지 나눕니다. 그리고 아래서 부터 오른쪽 위방향으로 읽어나가면 됩니다.아래쪽은 이 방법은 10진수를 8진수로, 10진수를 16진수로 바꾸는 경우에도 똑같이 적용 됩니다. 이 때 맨 아래 비트를 MSD(most significant digit), 맨 위 비트를 LSD(least significant digit)라고 합니다. 10진수를 2진수로 그러면 이 원리는 어떻게 되는지 간단히 알아보겠습니다. 1583을 각 자리수별로 나타내면 각 부분은 기수,지수,가수 부분으로 나누어집니다. 각 부분의 가수를 구하는 것이 핵심인데, 10으로 나누게 되면 위와같이 가수부분이 순서대로 나오게됩니다. 이..

컴퓨터구조 2014.02.24

배열 포인터 C언어

이 전시간 포인터 배열에 대해서 알아보았다. 이번에는 배열 포인터에 대해서 간단히 알아보고 구조체로 넘어갈까 한다. 문자열도 다뤄야하는데 사실 배열과 문자열에 관한 내용은 천천히 다루는게 좋지않을까 싶다. 문자열을 다루는 것이 그만큼 배열과 밀접하고 중요하기 때문이다. 또한 포인터의 개념도 완벽히 잡히지 않은 상태에서 다루다보면 이도 저도 안되기 때문이다. 그래서 문자열과 배열을 한번에 너무 깊게 다루는 것은 전반적인 C학습에 저해 요소라 생각든다. 이 부분은 어떤 프로젝트를 하면서 그때 그때 필요한 부분을 익히는 것이 더 효율적이라 생각들고, 문법을 공부하는 입장에서는 C의 전반적인 흐름을 익히는 것이 중요하다 생각된다. 이 블로그의 포스팅의 목표는 간단한 주소록을 시작으로 채팅프로그램, 그리고 C++..

시간여행자의 아내 (2009년작) 어바웃 타임(About Time) 영화

시간 여행자의 아내는 에릭바나, 레이첼 맥아담스가 주연한 2009년작 영화입니다. 이 영화는 원작소설(the time traveler's wife)을 영화한 작품입니다. 최근에 개봉한 어바웃 타임(About time)과 유사한 주제지만, 어바웃 타임은 오히려 나비효과와 비슷하다고 생각들고, 시간여행자의 아내는 운명론과 관련 있다고 생각듭니다. 두 영화의 차이점 어바웃타임에서의 주인공과 시간여행자의 아내의 남편이되는 주인공은, 둘다 시간여행을 하는 유전적인 능력을 갖고 있지만, 어바웃타임에서의 시간여행은 자신이 원하는 과거로 돌아갈 수 있고, 또한 과거를 바꿀 수도 있습니다. 반면에 시간여행자의 경우에는 이 능력은 운명이고, 자신이 컨트롤 하기 힘든 능력입니다. 또한 미래로도 갈 수 있습니다. 이런 특징으..

관심사/영 화 2014.02.24

보수의 개념과 컴퓨터연산에서의 활용

시대가 바뀌고, 컴퓨터의 보급이 대중화 됨에 따라 주판으로 하던 계산들은 컴퓨터가 대신해주고, 주판은 점점 잊혀져 갔다. 실용적인 목적의 주산이 어린아이들의 연상능력 개발을위한 도구로 바뀌었다. 이유야 어쨌든 주판은 고대부터 사용되어왔고, 인간의 기억력을 보조하는 역할로 사용되었다. 이런 주판은 연산은 보통 10진수를 기본으로 한다. 그런데 컴퓨터의 연산은 2진수를 기본으로 하는건 다 알고 있을 것이다. 그럼 이런 도구들의 연산에 대해서 알아보자. 보수 보수의 개념을 처음 접하는 사람도 있을 것이다. 왜냐면 우리가 교육받은 초중고에서는 보수라는 개념에대해서 알지 않아도 모든 연산이 가능하기 때문이다. 그런데 컴퓨터의 2진연산에서는 보수의 개념이 등장한다. 이런 보수의 개념은 컴퓨터의 전유물이 아닌 주산에..

컴퓨터구조 2014.02.23

종로도서관 가는길-(사직공원,사직단)

종로도서관 - 도시속의 작은 쉼터 지하철 3호선 경복궁역에서 하차를 하면 경복궁 말고도 사직단이 있는 사직공원에도 갈 수 있는데, 사직공원에 둘러쌓여있는 종로도서관이 위치해 있다. 타 도서관에 비해서 외진곳에 위치해 우연히 마주치기는 힘든 곳이다. 나는 어릴적부터 종로구에서 살아와서 익숙하지만, 이 근처 안국쪽에 위치한 정독도서관이 더 인기가 많다. 4월 벗꽃이 필 무렵에도 정독도서관은 참 인기가 많은 장소인데, 난 그래도 정독도서관과, 종로도서관 둘중에 하나를 꼽으라면 종로도서관이 더 좋다. 아마 중고교시절 어릴적 친구들과 다닌 기억들 때문인듯하다. 1번출구로 나가면 종로도서관을 갈 수 있고, 또한 3번출구로 나가면 경복궁에 갈 수 있다. 위 개찰구에서 왼편으로 꺽어서 에스칼레이터를 타고 나와 1번 출..

일상 2014.02.22

김연아 은메달 예상되었다.(소치올림픽)

난 사실 예전부터 김연아 경기에 관심도 없었고, 본방사수 한 적도 없었다. 그렇다고 안본건아니지만, 김연아가 그렇게 잘해? 이렇게 생각하면서 김연아 경기 리플레이 장면만 봐왔고 다른 선수들 경기장면은 거의 보질 않았었다. 그런데, 이번 소치올림픽은 어쩌다 피겨 여자 단체전에서 율리아 리프니츠카야의 연기를 보고 와~ 잘한다 생각했고 그래서 어제부터 각 선수들의 경기영상을 전부 다 봤었다. 김연아경기를 본지도 오래되었고, 그리고 러시아꼬맹이랑 얼마나 차이가 날까, 생각했다. 그런데, 김연아 연습에서 점프를 뛰는 순간, 소름이 돋아버렸다. 이건 말이 필요없었다. 와.. 내가 지금까지 김연아가 연기하는 것만 봐와서 눈이 높아졌구나.. 이렇게 생각되었다. 그리고 김연아의 점프뿐아니라, 연기력, 스텝, 그리고 멘탈..

관심사/기타 2014.02.21

gotoxy()함수를 만들어 써보자.

이전 터보C에 있던 함수입니다. 콘솔환경에서 개발하시는분은 거의 안계시지만, C언어를 공부하시고, 콘솔에서 게임을 간단히 만드시려면 필요한데, 쓰는 방법은 워낙 유명합니다. 윈도우 API를 이용하여 쓰는 방법인데, 간단하게 windows.h 을 include 하신후 다음과 같이 함수를 만들어 쓰시면 됩니다. 첫번째 함수는 settextcolor이고 쓰시는 방법은 settextcolor(1,1) 이런식으로 쓰시면됩니다. 인수에따라 색이 바뀝니다. 두번째 함수는 gotoxy이고 쓰시는 방법은 인수가 좌표고 커서를 그곳에 위치시킵니다. 저같은경우는 아래 함수를 모듈로 만들고 헤더파일을 만들어 인클루드해서 씁니다. 2014/01/24 - [프로그래밍/C언어] - 분할컴파일 하는법(gcc) c언어 헤더파일에 있는..

cocos2d-x 3.0 beta2 설치를 다시해보다.

1년전쯤 cocos2d-x를 공부했었다. 이 게임엔진은 이름처럼 2D게임을 만드는 툴인데, C++을 사용한다. cocos2d에서 발전된게cocos2d-x인데 cocos2d는 object-c를 사용했었다. cocos2d-x는 C++외에도, javascript,lua를 사용한다. 다른 게임엔진들도 무료화가 추세지만, cocos2d-x는 순수 무료라이센스다. 아직 한국에선 시작단계지만, 중국에선 대부분 이 게임엔진으로 어플개발을 한다고한다. 사실 작년에 유니티3D와 함께 좀 끄적거려봤었지만, 2D게임을 개발한다면, cocos2d만큼 깔끔한 엔진도 없다고 생각든다. 유니티도 이젠 2D를 지원하지만, 순수하게 2D로 게임을 만들고 싶다면 cocos2d로 먼저 개발하는 것이 현명한 선택일 수도있다. 대신 순수하게 ..

cocos2d-x 2014.02.17

포인터배열(Ragged) c언어

이전에 동적할당의 경우에서도 잠깐 나왔었는데, 포인터 배열에대해서 좀 더 알아보자. 포인터 배열은 말 그대로 배열의 요소들이 포인터인 배열이다. 선언을 하는 방법은 int *arr[5]; // 이런식으로 단순히 *구두점을 배열명에 붙여주면된다. int *arr[5]의 각요소들인 arr[0],arr[1],arr[2],arr[3],arr[4] 은 포인터가 된다. 아래의 예를 보자. 위 코드는 두가지 사실을 말해준다. 첫째로 각 요소들은 포인터로서 같은 크기지만, 각각 크기가 다른 문자열을 가리키고 있다. 두번째는 이런 요소들이 문자열을 가리킨다고해서 배열명은 아니라는 것이다. 마치 2차배열과 동작이 비슷해 보이지만, 이런 포인터 배열의 요소는 어디까지나 포인터라는 것이다. 만약 배열명으로 작동한다면, 배열명..

반응형