본문 바로가기

전체 글140

[시스템프로그램]02-3-2 실수와 사칙연산(2) 그럼 Willan Khan아저씨가 만든 IEEE Standard 754라는 실수 표현법 표준안이 어떻게 작동하는지 살펴보도록 한다. IEEE Standard 754는 거의 99퍼센트의 언어에서 사용하고 있지만 사용하지 않는 언어도 있다. 당장만 봐도 c언어에서는 적용되지 않을 때가 있다. 실수는 (-1)^s * M * 2^E식으로 표현이 가능하다. 이것은 저번에도 봤었던 표를 식으로 나타낸것이다. -1^s 는 해당 실수가 양수인지 음수인지 판단하는 sign을 뜻한다. M은 위 그림에서의 fraction부분을 뜻하고 나머지 E는 exponent을 뜻한다. M은 fraction부분이지만 거의 1에서 2사이의 수가 된다. 일부로 1을 추가로 준것이다. 주로 우리가 사용하는 컴퓨터는 32비트 또는 62비트를 사.. 2020. 4. 30.
[시스템프로그램]02-3-1 실수와 사칙연산(1) 이제 정수 파트를 다 살펴보았고 실수부분을 실수 자체에서 사칙연산까지 살펴보도록 한다. 일단 실수는 점이 들어가 있는 숫자를 뜻한다. 예를 들어 0.123, 2.7182818..., 3.14159265358.... 같은 숫자들을 실수라고 한다. fraction value할려면 실수이다. 또한 실수라는 수는 굉장히 작은 수 혹은 굉장히 큰 수를 표현하기 위해서 만들어졌다고 한다. 예를 들어서 지구에서 태양과의 거리 등등 이 있네요. 컴퓨터시스템에서 실수는 3가지로 구성이 된다. sign, exponent, fraction이다. 대충 위 그림과 같이 구성이 되있습니다. 왼쪽부터 설명하자면 sign은 양수,음수를 판단, exponent은 지수값 그리고 fraction은 수 데이터를 의미한다. 본격적으로 실수에.. 2020. 4. 29.
야메 C언어 강좌: 7. while문과 for문 이번 강좌에선 조건문의 꽃이라고 할 수 있는 while문과 for문에 대해서 알아보도록 하자. while문과 for문이 조건문의 꽃이라고 부를 수 있는 이유는 바로 '반복'이란것에 있다. 대부분의 컴퓨터 작업에서 반복은 빼먹지 않고 거의 필수로 존재한 작업이다. 특히 기계라는 것의 제일 독출난 특징이 바로 반복이지 않겠는가. 우리가 비록 앞에서 많은 내용들을 다루었지만 이 while문과 for문을 배우면 반복이란 기능을 통해 더욱더 많은 기능의 코드를 만들어 낼 수 있다. 그럼 while문 부터 살펴보자. #include int main(){ int a; int b = 0; printf("a의 값을 입력해주세요 : "); scanf("%d",&a); while(a!=b){ a-=1; } return 0;.. 2020. 4. 29.
야메 C언어 강좌: 6. if문 조건문의 시작 안녕하세요. 매일 블로그에 글을 올리는게 꽤 힘드네요. 그래도 벌써 블로그에 제글을 올리기 시작한게 2주가 거의 다가갑니다. 항상 매일 꾸준히 무언가를 하는게 힘든일인데 이번계기로 저만의 프로젝트를 만들어 매일 (무엇)하기 식으로 제가 성장할 수 있는 무언가를 계속해서 시작할 생각입니다. 여러분들도 꾸준히 코딩 공부 하시고 계시나요? 이 강좌를 꾸준히 보신 여러분들은 이전까지 정말 기초의 기초를 배우셨다고 생각해도 좋습니다. 그리고 오늘부터 배우는 조건문들은 거의 모든 컴퓨터 언어에 똑같이 적용되는 기초지식입니다. 덕분에 이런 간단한 조건문으로 정말 많은 것들을 해낼수 있죠. 그럼 여러분들 새로운 지식을 받아들일 준비가 되셨나요? 그럼 한번 if문을 시작으로 조건문들을 배워보죠. 우리가 네이버, 다음, .. 2020. 4. 28.
[시스템프로그램]02-2-2 정수의 사칙연산(2) 저번에 정수의 덧셈에 대해서 알아보았고 곱셈과 나눗셈에 대해서 알아본다. 먼저 unsigned의 곱셈을 알아보도록 한다. w-bit의 x와 y의 최대 최소값은 2^(w-1)~0이 된다. 그럼 두 수의 곱셈인 xy의 최대값은 2^2w - 2^(w+1) + 1~ 0이된다. 정리를 조금 해보자면 0 2020. 4. 28.
코딩교육, 과연 무엇을, 어떻게 그리고 왜 해야하는가? 알파고와 이세돌의 대국이후에 코딩에 대한 교육인식이 굉장히 화제가 많이 되기 시작했다. 많은 소프트웨어 전문가들이 모든 사람들이 코딩을 배워야 한다라고 할 정도로 코딩교육에 대한 인식이 굉장히 중요해지고 있는 추세이다. 예전 내 게시물의 댓글에서도 요즘 코딩학원이 많은데 왜 코딩학원을 다녀하는지의 질문도 있었다. 물론 그럼에도 불구하고 국,영,수만큼의 공부분야는 아니라고 생각하고 있다. 하지만 내가 생각을 해도 참 코딩교육은 중요하다고 생각하고 이를 빨리 배울수록 좋다라고 생각한다. 개인적으로 코딩에 관심을 가지고 컴공으로 진학을 해야하는 가장 큰 동기는 고등학생때 코딩에 아주 뛰어난 반 친구 덕분이었다. 그 친구는 혼자서 학교 웹사이트를 직접 디자인하고 친구들에게 학식앱을 제공하는 등 굉장히 독특한 지.. 2020. 4. 27.
[시스템프로그램]02-2-1 정수의 사칙연산(1) 이번 글부터는 시스템속에서 정수값들이 어떻게 사칙연산을 하는지에 관한 글이다. 먼저 순서대로 더하기부터 알아본다. 일단은 unsigned인 정수들의 합에 대해 얘기한다. w-bit인 x와y가 존재한다. x와 y의 최대값은 2^w-1값을 갔게 되고 x+y의 최대값은 2^(w+1)-2가 된다. 물론 최소값은 0이다. 밑 그림은 x와 y가 4비트라고 생각했을 때의 최대값과 최소값을 표현한 그래프이다. x와 y는 unsigned integer이기 때문에 두 값이 합과 상관없이 32bit로 표현해야 된다. 그래서 조금 정리를 해보자면 위의 식은 unsigned인 w-bit값들의 합 관련 식이다. 위 그림표를 보면 4비트인 두 수를 더하면 중간쯤에 overflow가 발생하게 된다. 4비트에서 표현할 수 있는 최대값.. 2020. 4. 27.
야메 C언어 강좌: 5. 문자의 비밀과 출력(ASCII, 아스키코드) 저번 시간에 굉장히 다양한 변수들과 그 변수들을 사칙연산을 통한 활용에 관하여 배워보았다. 그리고 오늘은 잠깐 문자와 관해서 조금 만 더 설명을 진행하고 출력에 관해서 얘기해보려고 한다. 문자 변수는 char이다. 저번 강의를 살펴보았다면 char는 모든 변수중에서 가장 작은 범위의 수를 담을 수 있는 변수이다. 그 이유는 기본적으로 영어문자들을 모두 담을 수 있게 하기 위함이라고 설명을 하였다. 그럼 char 변수에 문자를 넣어보는 코드를 보이겠다. #include int main(){ char a = 'a'; printf("a를 %%d로 출력한다면? : %d\n",a); printf("a를 %%c로 출력한다면? : %c\n",a); return 0; } 일단 char에 문자를 저장하는 방식은 ''안에.. 2020. 4. 26.
[시스템프로그램]02-1-3 정보의 표현과 활용(3) Type conversion 타입의 변환, 여기서 형 변환은 unsigned 과 2's complement와의 형변환을 이야기 하는 것이다. 위 사진은 signed에서 unsigned으로 변환화는 과정이다. 보시다 싶이 2^(w-1) ~ 0은 변화가 없고 0~ -2^(w-1)일때는 x값에 2^w을 더하여 형변환이 이루어진다. signed unsigned의 형변환은 보기에는 간단하지만 막상 계산을 해보면 까다로운 부분들이 있다. 그래서 간편하게 x가 음수이면 x + 2^w, x가 양수이면 변하지 않는다라고 생각을 하면 쉽다. unsigned에서 signed으로 변화하는 과정은 이과정의 반대이다. 그래서 딱히 더 설명을 적지 않겠다. 그럼 실제 C언어에서의 Type conversion을 살펴 보겠다. 일단 .. 2020. 4. 26.