}

블로그 소개


*여러분들의 따듯한 댓글은 5%, 팔로우는 10% 블로그 포스팅 속도와 퀄리티를 높여줍니다.*

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

팔로어

다른 페이지로 이동


리눅스 독학 페이지 운영체제 독학 페이지 네트워크 독학 페이지 시스템 해킹 하드웨어 독학 페이지 프로그래밍 독학 페이지 보안 페이지

오스 페이지 다이어트 정보 페이지 게임 정보 페이지 인생 꿀팁


****사진을 클릭하시면 페이지로 이동할 수 있습니다!****

<===***===↓↓↓You can use translate using chrome ↓↓↓===***===>

2018년 11월 8일 목요일

C언어 시작하기!

안녕하세요~ 매니입니다.

C언어, 그것은 컴퓨터에 관련된 직장이나, 학과를 다니는 사람은 필수적으로 거쳐야 할
그런 필수불가결한 과정인데요

제가 컴퓨터 관련 과를 들어가기 전 나름, 선행학습을 하겠다고 C언어 독학을 위한 책을 찾아 다니고 공부를 좀 해봤는데 학교에 들어가서 C언어를 처음 배울 때 사용한 책이 제일 좋은 것 같습니다. (제 경험상)

이 책은 아실분 들은 다 아실 '쉽게 풀어쓴 C언어 Express'입니다.

생능출판에서 발행한 책이구요 저희 학교외에도 다른 많은 학교에서 사용하는 책이라
중고로 쉽게 구할 수 있을 겁니다. (솔직히 돈주고 사면 아까움)

책을 보시면 칼라풀 하고 그림설명이 많아서 독학하기에 아주 적합해요~

단 책이 2015버젼인데 , 가끔 오타가 있습니다(보통 공부를 하다보면 책에 오타가 있어도 이해가능함) //새로운 버젼 2017인가 2019인가 나왔던데 구할 수 있다면 최신버젼을
보세요~

 외모?는 대략 이렇게 생겼습니다~
누더기인 이유는 제가 열심히 공부했기 때문이죠 핫핫(비에 젖음)





펼쳐보시면 이런식으로 칼라풀한 그림과 자세한 예시와 설명으로 독자의 이해를 돕습니당

정말 쉽게 구할 수 있는 책으로서, 혹시 C언어에 관심 있는 분들이라면 이 책을
중고로 구해서 한번 공부해보시는 것도 좋을 것 같아요!

자 이제 C언어를 시작하는 부분이니 가장 먼저 1장을 보겠습니다.

1장의 제목은 '프로그래밍 개념' 입니다.


뭐 이런식으로 솔직히 중요하지는 않은? 내용과 가장 기초적인 정보가 나옵니다
그러나 여러분은 저 긴 글을 읽기 싫으실테니

제가 1장에서 딱 알고 넘어가면 좋을 정보만 추스려보겠습니다.
(관심 있으신 분은 구해서 읽으시면 됩니ㄷ...)


1.컴퓨터(순수 하드웨어)는 0과 1 , 즉 기계어만 이해할 수 있다.

다들 0과 1이란 '이진법'을 들어는 보셨을 겁니다. 아시는 분들도 있으실 거구요

하지만 컴퓨터를 공부할 사람, 프로그래밍을 하든 네트워크를 공부를 하는사람은
무조건 '이진법'을 알고 있어야 하기에

아예 모르는 시는 분들을 위해 설명을 하고 넘어가려 합니다.

아시는 분은 점선으로 나눈 부분을 넘어가주세요~
------------------------------------------------------------------------------------------------
저희들이 가장 많이 사용하는 '진법'
0,1,2,3,4,5,6,7,8,9 총 0부터 9까지 10개의 수를 사용하죠?
그래서 '십'진법이라 부르는 것이랍니다.

십진법은 7 -> 8 -> 9 이런식으로 숫자가 올라가다가
9에서 숫자 1이 더 올라가면 '1의 자리'는 9 -> 0이 돼죠?
그러면서 '10의 자리'에 1이 증가하면서 말이죠

이번에는 한번 숫자 8을 00000008 이런식으로 봐봅시다,  여기에 2를 더하면
일의 자리는 0이되고 십의 자리는 1이 되어
                                  00000010 이렇게 되죠?

이것을 자세히 보면 '십진수'일의자리, 십의자리, 백의 자리는 각각
                            10의 0승(1.0e+0), 10의 1승(1.0e+1), 10의 2승(1.0e+2)이고

저희는 여기서 0이 붙을 때마다 10의 1승씩 올라가는 '규칙을 발견할 수 있었습니다.

그리고 e + 0,1,2가 뭔지 궁금하실 텐데요
참고로

수학에서 쓰이던 무리수 e랑 상관이 1도 없습니당

이것은 쉽게 그냥 10이라 생각하면 돼요!

e = 10 이렇게 생각하고 한번 규칙을 찾아봅시다!
10의 1승 = 1.0e+1 = 10 ,
10의 2승 = 1.0e+2 = 100,
10의 3승 = 1.0e+3 = 1000
10의 -1승 = 1.0e -1 = 0.1,
10의 -2승 = 1.0e -2 = 0.01,
10의 -3승 = 1.0e-3 = 0.001
느낌이 오지 않습니까?

수학에서 숫자랑 기호가 붙어있으면 그 사이에 곱하기가 생략되어 있죠?
마찬가지러 여기서도
(1.0) x (10{e})이라 보면 되는 것이죠

또 e옆에 '+- 숫자'는 무엇이냐

+는 말그대로 이란 의미이고 -마이너스란 의미입니닷
즉,
e+2는 10의 2승이고
e-2는 10의 -2승이란 소리죠 이렇게 표기하는 방법을

'부동소수점' 방법이라 하는데요


'부동소수점'를 사용하는 이유는

 "적은 수의 비트를 가지고 넓은 범위의 실수를 표현하기 위한 방법"이기 때문입니다.

이것도 이 포스트에서 설명하자면 너무 길어지니
다른 포스팅으로 알려드릴게요

서론이 너무 길었는데요, 이제 이진법은 뭔가 알려드릴게요!

이진법도 십진법이랑 똑같습니다, 다만 십진수와는 다르게 숫자 2개( 0과 1)만 사용하는 것이죠
어떤 식이냐 숫자 1을 더할 수록 0 -> 1 -> 0 이런식으로 말이죠

위에 십진법의 예시처럼 예를 들어본다면

1을 00000001과 같이 표시해봅시다. 여기서 0은 말그대로 숫자 '0'이라 쓰나 안쓰나
똑같습니다.

여기서 1을 더하면, 2가 되겠지만 이진법은 0,1밖에 없기 때문에

1의 자리는 0이 되며 앞의 수가 올라가죠
00000010 이렇게 말입니다.  이것은 '2'와 같습니다.

자 뭔가 이상한 느낌이 들지 않습니까?
1을 더 더해보면
00000011 이렇게 되는데요, 이건 몇일까요? 3입니다
왜냐면 '2'였는데 저희가 방금 1을 더했으니까요~

1을 더 더해보죠
00000100 요건 몇일까요? 4입니다. 1에서 총 3을 더했으니까요

!!! 느낌이 오십니까?

아직 느낌이 안오신다면 이렇게 한번 봐봅시다.

십진수는      일의자리, 십의자리, 백의 자리... 이렇게 올라가는게
'10'진수니까  10의 0승, 10의 1승, 10의 2승... 이렇게 표현했죠?

이진수는     
 '2'진수니까  2의 0승2의 1승2의 2승... 이렇게 올라가는겁니다!

뭔소리냐?

00000001 = 2의 0승,
00000010 = 2의 1승,
00000100 = 2의 2승 와 같다는 얘기입니다!


또 다른 규칙이 있습니다.

십진수에서의 989는 위에 방법으로 표시하면
(9) x (10의 2승) + (8) x (10의 1승) + (9) x (10의 0승)이죠 이진수도 마찬가지로

111 = (1) x (2의 2승) + (1) x (2의 1승) + (1) x (2의 0승)이죠
그럼 얼마입니까?
4 + 2+ 1 = 7이죠
즉,
111 = 7입니다

그렇다면
101은 몇일까요? 위와같이 계산하면 (1) x (2의 2승) + (0) x (2의 1승) + (1) x (2의 0승)
4 + 0 + 1 = 5죠
101 = 5입니다
---------------------------------------------------------------------------------------------------
이렇게 대충 이진수에 대해서 이해를 하셨으면 왜 컴퓨터는 이진수를 사용하느냐?를
알아야 겠죠? 여러분 아주 간단한 예시를 들어보겠습니다.

방의 불을 키고 끄기위해 스위치는 'on'과 'off'만 있죠?

이 on과 off는 무엇입니까?

on이면 전기가 흘러서 방에 불이 들어오고
off이면 전기가 흐르지못해 방에 불이 꺼지죠?

컴퓨터도 마찬가지입니다!
전기가 흐르냐 안흐르냐
딱 두가지만 있기에
on , off만 필요하고 이 두가지의 상태를 나타내기 위해 용이한 것이
바로 이진법이란 것입니다!

0은 off, 1은 on 이렇게 말이죠

하지만 0과 1이 적은 수만 있으면 모르겠지만
저희가 사용하는 컴퓨터는 저어어어어어엉말 많은
부품들과 또 부품에 들어있는 수많은 재료들에서
on , off를 나타내야 하기 때문에
01010101 11010101 01101010 10101010 10101001 01001110 이런 식으로
표시하게 되죠, 컴퓨터는 이해를 합니다만 저희 인간은 이걸 보고 어떻게 이해를 합니까?

또 저희가 컴퓨터를 다루기위해 (컴퓨터에게 명령을 내리기 위해)
저런 엄청난 01조합을 외울 수도 없죠

그래서 생겨난 것이 프로그래밍 언어 = 고급언어 입니다.

고급언어는 세계에서 가장 유명한 언어인 영어로 작성하며
그렇기에 인간이 읽고 해석하며 사용할 수 있죠.



2. 저희가 이해가능한 고급언어를 기계어로 바꾸는 과정을 컴파일(compile)이라 한다.

자 그럼 컴파일을 해주는 프로그램은 뭐일까요?
영어에서 '~하는 사람'을 만들어주는 접미사가 있죠?
'er'
이걸 붙인 compiler 즉 , 컴파일러 입니다.

3. C언어는 운영체제를 만들 때 사용한 언어로 구체적인 하드웨어 제어에 좋다

그래서 프로그래밍에 더 특화된 수많은 언어가 등장함에도
임베디드(김치냉장고,전자레인지 같은 하드웨어에 소프트웨어가 접목된 것)
에 사용되는 것입니다!
(저희 교수님 왈, C언어만 잘해도 취업이 된다)

4. 그냥 일단은 C언어 = C++이라 생각하자 

c++이 c의 상위호환인데 거의 비슷하므로 그냥 같다고 생각해도 괜찮은 것 같습니다.(저는)



5.  통합 개발 환경  =IDE(Integrated Development Environment)

프로그래밍하는 데 필요한 도구들이 다 들어 통합되어 있는 프로그램을 말한다

우리가 사용할 것은 visual studio이다



마지막으로 visual studio다운하는 사이트를 올릴게요
학생 공부용은 무료니까 걱정마시고 다운받으세요~

https://visualstudio.microsoft.com/ko/free-developer-offers/

혹시 헷갈리신다면 무료는 community버전이니 다운받으세요~

다음에는 본격적으로 프로그래밍을 시작해보겠습니다!

긴 글 읽어주셔서 감사합니다! 도움이 되었으면 좋겠네용!

혹시 오타나 틀린 정보가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!







댓글 없음:

댓글 쓰기

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!