본문 바로가기

분류 전체보기145

[시스템프로그램]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.
[사이트추천] 개발자 커뮤니티 추천! 코딩 문제를 풀다가 문제가 생겼을 때 혹은 앞으로 프로그래머서의 미래가 궁금할 때 주변에 프로그래머 전문가가 없다면 굉장히 난감해질수도 있는데요 그때 인터넷의 다양한 개발자 커뮤니티에 글을 보는 방식으로 개인적인 궁금증들을 해결할 수 있는데요. 개인적으로 저도 다양한 개발자 커뮤니티를 활용하면서 성장을 하고 있습니다. 커뮤니티에선 앞서 말했듯이 코드를 짤데 막히는 것들을 올리기도 하고요 아니면 자신의 미래에 관해서도 다양하게 질문을 할 수있습니다. 그럼 어떤 커뮤니티들이 있는지 살펴볼까요? 1. Okky okky는 제가 알고있는 한국 개발자 커뮤니티중에서 가장 큰 커뮤니티로 알고 있습니다. 경력이 적은 개발자부터 경력이 굉장히 긴 개발자까지 그리고 정말 다양한 직군의 개발자분들이 활동하는 것으로 보이는데.. 2020. 4. 25.
[아무문제] 다항식 더하기 프로그램 말 그대로 x에 관한 다항식 더하기 결과를 출력하는 프로그램입니다. 입력: 9x^2+6x^1-3x^0 10x^2+3x^0 출력: 19x^2 + 6x^1 + 0x^0 #include #include #include #include typedef struct _Node { int coef; int expon; int item; struct _Node* next; }Node; typedef struct { Node* tail; int len; }Polynominal; typedef struct { Node* top; }Stack; void InitItem(Polynominal* plist) { plist->tail = NULL; plist->len = 0; } void InsertLast(Polynominal.. 2020. 4. 25.
[아무문제] 정해진 그룹으로 역출력하는 프로그램 순서대로인 배열이 있으면 몇묶음씩을 거꾸로 출력하는 프로그램이다. 6 1 2 3 4 5 6 2 로 입력값을 집어 넣게 되면 출력값은 1->2->3->4->5->6->NULL 3->2->1->6->5->4->NULL 같이 나온다. #include #include typedef struct _Node{ int data; struct _Node* next; }Node; void printList(Node* head){ Node* ptr = head; while(ptr){ printf("%d",ptr->data); printf("->"); ptr = ptr->next; } printf("NULL"); printf("\n"); } void push(Node** head, int data){ Node* newNod.. 2020. 4. 24.
[Visual studio2019] scanf_s와 scanf 문자열 입력 오류 비주얼 스튜디오는 거의 2년 마다 새로운 버전으로 출시가 되고 있습니다. 덕분에 각 버전마다 조금씩 다른 특징이 있습니다. 그리고 이번 visual studio2017에선 조금 큰 변화가 있었습니다. 바로 출력함수 scanf입니다. 예전처럼 scanf를 사용하게 되면 경고문이 나오게 됩니다. 특히 우리가 평소대로 문자열을 입력받기 위해서 scanf("%s",sentence); 이런식으로 사용하게 된다면 제대로 작동을 안하고 경고문이 뜹니다. 그럼 어떻게 해야 할까요??? 1. 일단은 당장 경고문을 없애기 위해서 경고문을 없애는 define을 사용하면 경고문이 없어집니다. #define _CRT_SECURE_NO_WARNINGS 그리고 아마 비주얼스튜디오에서 얘기를 하겠지만 scanf함수 대신에 scanf.. 2020. 4. 24.