C언어를 설명함에 있어서

필자는 많은 고민을 했습니다.

 

C언어를 공부하기전 알아두면 피가 되고 살이 되는 컴퓨터 이야기를

언제 어느때 해야 될것인가에 대한 고민입니다.

 

C언어를 단순히 문법적인 측면

즉, 수박 겉핧기 식으로만 접근 한다면

 

C언어 문법만 줄줄줄 써내려가도 C언어 입문자 분들에게는

어느정도 도움이 되는 교재가 될수도 있다고 생각합니다.

 

다만

C언어를 배우는 이유가

단순히 컴퓨터 프로그래밍 언어를 맛보기 위함이 아니고

 

추후 C언어가 가지는 고유한 기능들을 활용하고

이를 위해서 컴퓨터 전반에 대한 지식을 쌓아가는 과정으로 만들자면

 

C언어를 배우는것은 어쩌면 고난의 연속이 될지도 모릅니다.

 

그 이유는 필자의 말에서도 나와 있듯이

C 언어라는 것이 UNIX라는 운영체제를 작성하기 위해서 개발된 언어로

하드웨어를 직접 제어하는 시스템 프로그래밍에 적합하게 설계된

 

다르게 말하면

인간이 알아 보기 편한 고급 언어 같은

그렇다고 완전히 고급 지지도 않고(고급질수도 있지만)

기계들이 직접적으로 인식하기 편한 기계어나 저급 언어도 아닌

그렇다고 어정쩡한 중급 언어도 아닌

그런 묘한 매력을 지니고 있느 프로그래밍 언어이다 보니

설명을 하는 필자도 참 난감합니다.

 

C언어를 C언어 답게 활용한다는것은

하드 웨어를 직접 제어하고 하드웨어 성능을 100% 뽑아 내기 위하여

하드웨어 친화적인 프로그래밍을 해야 하는데

 

하드웨어에 대한 전반적인 지식이 없다면

진정한 C언어의 장점을 100% 활용한다고 보기 어렵기 때문입니다.

 

그렇다고 당장

C언어 입문자에게 컴퓨터 구조론이나 자료구조론 같은

어찌보면 C언어와 동떨어진 이야기로 시작할수는 없는 노릇입니다.

 

그래서

이번장에서는

다음장을 읽어 내려갈때 필요한 몇가지 지식을 서술하고자 합니다.

 

지금 당장은 어려운 내용이다 보니 선의의 거짓을 섞어서 이해하기 편한 방향으로 서술하겠습니다.

 

그럼 우선 컴퓨터는 무엇인가에 대해서 짚고 넘어가 보겠습니다.

 

컴퓨터 무엇을 먹고 살까요?

 

답은 전기 입니다.

 

컴퓨터가 먹고 사는것이 전기라는 것은

컴퓨터를 작동하기 위해서 반드시 필요한것이 전기라는 말과 같고

 

컴퓨터에는 이러한 전기적인 특성을 이용하여 구성된

고철 혹은 반도체 덩어리 입니다.

 

컴퓨터의 전기적인 특징이라면

보통 두가지 상태를 이야기 할수 있습니다.

 

1. 전기가 흐르는 상태

2. 전기가 흐르지 않는 상태

 

위 두가지 상태를

실제 전기적인 상태로 표현해 본다면

 

전기가 흐르는 상태를 5V

전기가 흐르는 않는 상태는 0V 쯤우로 생가해 볼수 있습니다.

 

이를 논리적인 개념으로 다시 접근해 보자면

 

전기가 흐르는 상태를 5V를 숫자 1로 생각하고

전기가 흐르는 않는 상태는 0V를 0으로 생각하고 정의하고 약속할수 있겠네요.

 

위에서 보신바와 같이

컴퓨터를 한마디로 표현하자면 약속의 학문이라고 할수 있는데요

 

이렇듯 우리는 약속을 통해서 무언가를 정의하고 활용하기로 합니다.

 

다른말로 컴퓨터를 배운다는 것은 이러한 약속을 배우고 그것을 활용하는 일이라고 표현도 가능하겠네요.

 

자 그럼 우리는 이러한 약속을 통해서

0과 1이라는 강력한 무기를 얻었습니다.

 

혹시 여러분들 2진법이라는 말을 들어 보셨는지요?

 

그럼 혹시 진법이라는것이 무엇을 뜻하는지 아시는지요?

 

사실 진법이 무엇인지는 초등학교 1학년만 되어도 다 알고 있는 사실이지만

막상 이렇게 "진법이란 무엇인가?"라는 질문들 던지면

 

이것에 대해서 명확한 답을 내릴수 있는 C언어 입문자 분들은 잘 없습니다.

 

그럼 여러분들이 엄청나게 잘 활요하는 10진법에 대해서 우선 살펴 보겠습니다.

 

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16...

 

이런식으로 여러분들은 별다른 의식하지 않고 대단히 훌륭하게 잘 사용하는 일반적인 숫자 개념이 10진법 입니다.

 

그럼 여기서 10과 진법이라는 의미를 구분해서 한번 알아 보겠습니다.

 

10이라는 것은 숫자를 나타내는 기호의 갯수를 의미하며

진법이라 숫자 체계를 의미합니다.

 

종합해 보면

 

10진법이란 숫자를 나타내는 체계이기는 한데 총 10개의 기호를 통해서 숫자를 나타내는 체계라는 뜻입니다.

 

10진법에서 사용되는 기호의 갯수가 10개라는 말과 동일합니다.

 

10진법의 기호는 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

 

이렇게 총 10개의 기호를 사용합니다.

 

여기서 뭔가 감을 잡기 시작한 분들은 이런 질문을 던질것입니다.

 

숫자에는 10도 있고 11도 있는데요?

 

네 물론 있습니다.

 

그러나 잘 한번 살펴보시면

10이라는 숫자는 1과 0의 기호 조합으로 이루어진것이지

 

10이라는 단독 기호가 사용된것이 아닙니다.

 

결론적으로 다시 돌아와서

 

10진법에 사용된 기호는 0부터 9까지 총 10개 입니다.

 

그래서 10진법이라고 부릅니다.

 

 

그럼 2진법은 무엇이냐?

숫자를 나타내는 기호의 갯수가 2개인 진법은 2진법이라고 합니다.

즉, 2진법에서 숫자를 나타낼때 사용하는 기호는  0과 1뿐이라는 이야기 입니다.

 

그럼 4진법은요?

숫자를 나타내는 기호의 갯수가 2개인 진법은 2진법이라고 합니다.

즉, 4진법에서 숫자를 나타낼때 사용하는 기호는 0, 1, 2, 3이렇게 4개 뿐이라는 것입니다.

 

그럼 8진법은요?

숫자를 나타내는 기호의 갯수가 8개인 진법을 8진법이라고 합니다.

즉, 8진법에서 숫자를 나타낼때 사용하는 기호는 0, 1, 2, 3, 4, 5, 6, 7, 이렇게 8개 뿐이라는 것입니다.

 

그럼 컴퓨터 배울때 자주 나오는 16진법은요?

숫자를 나타내는 기호의 갯수가 16개인 진법을 16진법이라고 합니다.

즉, 16진법에서 숫자를 나태낼때 사용하는 기호는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15)이렇게 4개 뿐이라는 것입니다.

 

근런데 재미있는 사실은

16진법에 갑자기 A, B, C, D, E, F라는 문자가 나오는것인데요.

 

그 이유는

인간은 보통 10진법을 사용하고 있는데...

 

아홉개의 크기를 나타내는 9라는 기호는 잘 알고 있지만

열개를 나타내는 단독 기호가 무엇인지 물어 본다면 뭐다 라고 딱 말할수 있는 사람은 없을것입니다.

 

그래서...우리는 약속을 합니다.

열개의 크기를 나타내는 단독 기호를 A라고 약속하고

열한개의 크기를 나타내는 단독 기호를 B라고 약속하고

열두개의 크기를 나타내는 단독 기호를 C라고 약속하고

열세개의 크기를 나타내는 단독 기호를 D라고 약속하고

열네개의 크기를 나타내는 단독 기호를 E라고 약속하고

열다섯개의 크기를 나타내는 단독 기호를 F라고 약속을 하였습니다.

 

위 표시에서 F(15)처럼 괄호뒤에 10진법 숫자로 친절하게 표기하여 드렸습니다.

 

아무튼

이건 제가 정한것이 아니고 모든 기호들이 그렇듯이 컴퓨터라는 학문에서 그렇게 약속을 한것입니다.

 

 

결론적으로 진법을 한마디로 정의 하자면

진법이라는 숫자를 나타내는 기호의 갯수라고 정의 할수 있습니다.



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 C언어 입문자를 위한 C언어 안내서 : 목차(모든 강의 링크 제공) update 좋은아빠되기 2025.11.19 7
공지 C언어 입문자를 위한 C언어 안내서 : 필자의 말 좋은아빠되기 2025.11.19 4
13 무료 공개강좌 문제없다 C언어 강의 교재 다운로드 안내 file 좋은아빠되기 2015.11.22 2506
12 문제없다 C언어 문제 1 좋은아빠되기 2015.11.22 4036
11 문제없다 C언어 문제 2 좋은아빠되기 2015.11.22 1436
10 문제없다 C언어 문제 3 좋은아빠되기 2015.11.22 921
9 문제없다 C언어 문제 4 좋은아빠되기 2015.11.22 756
8 문제없다 C언어 문제 5 좋은아빠되기 2015.11.22 804
7 문제없다 C언어 문제 5-1 좋은아빠되기 2015.11.22 965
6 문제없다 C언어 문제 5-2 좋은아빠되기 2015.11.22 2591
5 1장. C언어와의 만남 : - 처음으로 만드는 C언어 프로그램 좋은아빠되기 2025.11.19 5
4 컴파일러 설치 임시본 좋은아빠되기 2025.11.19 3
3 1장. C언어와의 만남 : - printf는 명령어가 아니고 함수다! 좋은아빠되기 2025.11.20 3
» C언어를 공부하지전 알아두면 피가 되고 살이 되는 컴퓨터 이야기 1(진법) 1 update 좋은아빠되기 2025.11.20 3
1 2장. 자료형에 따른 변수 선언 및 대입문과 연산자 new 좋은아빠되기 2025.11.21 1
Board Pagination Prev 1 Next
/ 1