모두를 위한 컴퓨터 공학 스터디 1회차

Jean Deluge·2022년 1월 15일
0

내용

1. 2진법

비트(Bit)는 Binary Digit의 약자이다.

이진수 체계는 가장 간단한 숫자 체계이다. 0과 1을 사용에서 예, 아니오 (있다, 없다) 와 같은 두가지 정보을 나타낼 수 있다. 2진법을 사용하는 컴퓨터에서 가작 작은 단위의 정보는 하나의 비트이다.

  • 비트는 프로그램에서 필요한 다양한 값을 나타낼 수 없기 때문에, 여러 비트로 된 비트스트링을 사용한다.
  • 숫자 10이 이진수인것을 표현하기 위해서 어셈블리어에서는 숫자앞에 %를 붙여 %10 으로 나타낸다.

비트 스트링 : 여러 비트의 나열

  • 니블 : 4개의 비트, 16진수를 표현할 수 있다.
  • 바이트 : 8개의 비트. 많은 CPU에서 접근 가능한 가장 작은 데이터 단위이다.
    • 바이트의 비트 순서는 ‘7 6 5 4 3 2 1 0’ 이다.
    • 7번자리의 비트를 High Order 라하고, 0번 자리의 비트를 Low Order 라고 한다.

트랜지스터

https://terms.naver.com/entry.naver?docId=5741322&cid=60217&categoryId=60217

https://ko.wikipedia.org/wiki/트랜지스터

  • 1.2 스위치 작용, 1.2.1 논리의 전자적 표현과 BJT 의 스위치 동작 상태의 관계

컴퓨터는 전기가 통한다(1) 안통한다(0) 라는 상황만을 인식한다.

이 전기가 통한다/안통한다 의 상황을 나타내는 스위치가 있는데, 이것을 트랜지스터라고 한다.

트랜지스터는 전류나 전압흐름을 조절하여 증폭하거나 스위치 역할을 하는 반도체 소자이다.

추가학습: 부호가 있을 경우에는 어떻게 표현할까?

만약 음수를 표현하기 위해서, 컴퓨터는 어떻게 작동할까?

바이트의 예에서는 바이트의 7번 자리, 즉 HO 비트가 1인 경우 음수, 0인 경우 양수라고 한다.

ex) %0111_1011 :양수 , %1111_1110 : 음수

2. 정보의 표현

비트의 경우, 2가지의 경우의 수를 나타낼 수 있다. 예, 아니오 혹은 있다, 없다를 나타낼 수 있다.

물론 0, 1 각각에 대응하는 값은 이 것을 사용하는 사람들끼리는 어떤 의미인지 반드시 알고 있어야한다.

만약 2가지 이상의 경우를 나타내려면 비트를 여러개 사용하면 된다. 비트가 n 개 있다면, 만들 수 있는 경우의 수는 2^n 개이다.

다른 방법으로 숫자를 가지고, 숫자가 가진 정보를 나타내는 방법의 예시는 다음과 같다.

ASCII 코드, RGB컬러 코드, 악보 등이 있다.

아스키 코드https://ko.wikipedia.org/wiki/ASCII

7 비트의 인코딩으로, 영문 알파벳을 나타내는 정보이다.

RGB :https://ko.wikipedia.org/wiki/RGB

의 경우에는 8비트를 3개를 이용할때, 각각의 바이트에 빨강,초록, 파랑에 할당하므로서

256가지의 명도, 선명도를 결정한다.

악보

악보의 경우, 숫자는 아니지만, 5선보에 나타내는 위치에 따라 맵핑되는 피아노 건반의 위치를 나타낸다.

3. 알고리즘

알고리즘이란?

https://ko.wikipedia.org/wiki/알고리즘

수학, 컴퓨터과학, 언어학과 같은 분야에서 어떠한 문제를 풀어내기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것이다.

즉, 문제를 풀기 위해 필요한 절차, 처리과정의 순서를 뜻한다.

프로그램 제어구조

http://www.ktword.co.kr/test/view/view.php?m_temp1=5957

  1. 순차 구조 : 별도의 지시가 없는 한 명령문들이 작성 순서대로 하나씩 실행되는 구조
  2. 선택 구조 : 조건에 따라 분기 처리하는 구조
  3. 반복 구조: 하나 이상의 명령들을 반복적으로 사용하는 것

4. 스크래치

좋은 코드를 만들자

이벤트는 프로그램 사이에서 전달되는 신호라고 생각하라.

반복되는 코드를 반복문으로 만드는 것보다 하나의 함수를 만들어서 다른 곳에서 쓸 수 있도록(모듈화) 추상화한다.

추상화

https://ko.wikipedia.org/wiki/추상화(컴퓨터과학)

http://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=087982-1

복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 개념 또는 기능을 간추려 내는 것이다.

정보를 은닉할 수 있다.

예를들면 선풍기의 내부 구조에서 선풍기 전원을 켜는 방식은 모르지만, 선풍기를 켜는 버튼만 보여주므로써, 그 방식을 숨길 수 있다.

영어단어

join : 연산

nonetheless : 그렇기는 하지만.

trepidation : 앞일에 대한 두려움, 공포

take into account

albeit : 비록 ~ 일지라도 (격식체 )

permute : 변경하다, 치환하다.

onus : 책임 (격식체)

who might like to field this one? 누가 이걸 맡아서 해볼래?

참고 서적

Code - 찰스 펫졸드

Great Code 1권 - 랜달 하이드

profile
node.js , rudyonrails개발자

0개의 댓글