흰오목눈이야 개발하자

[20181206]C 프로그램 설치+수의체계_비트 본문

C

[20181206]C 프로그램 설치+수의체계_비트

흰오목눈이 2018. 12. 7. 13:43

1.     VSCode 다운로드

https://code.visualstudio.com/

 

2.     MinGW 다운로드(gcc 컴파일러)

https://sourceforge.net/projects/mingw/

-1,2,5,7번째 있는 거 체크

3.     cstudy이름의 폴더 생성: 소스코드

 

4.     VSCode extension 설치

l  비주얼 스튜디오 코드는 껍데기만 줘서 확장으로 설치해야 함

l  c/c++ 설치

l  Code runner 설치: 실행시킬 수 있는 프로그램.

 

5.     MinGW 설치 후 path 설정

-      File-Open Forder-폴더 선택

 

l  C는 확장명 .c

l   C++ 확장명은 .cpp

l  글꼴 변경

File – Preferences – Settings – Text Editor -Font Size

+) Tip.

Eclipse Keymap을 설치하면 단축키 똑같아 짐

l  stdio=Standard input output

: 입출력함수를 포함시킨다.

처음에 이 파일이 없다. à컴파일러 설치

<수의 체계>

비트계산

1)    정수

2)    실수

정수

자연수: 1, 2, 3, ….

Zero: 0

음의 정수: -1, -2, -3, …

실수

ex) 0.25, 42.195, 1/2, 3/10(무한 소수)

T. 컴퓨터에서 어떻게 처리하는 지 배우겠다. 컴퓨터 개론

 

l  10진수: 10개의 숫자로 이루어져 있다.

0, 1, 2, …. ,9 à컴퓨터에서는 이것을 처리하지 못함

l  하나의 셀이 전하가 차 있으면 1이라고 표시. 전하가 차 있지 않으면 0으로 표시

이거를 쭉 나열해서 하나의 숫자를 만들자.

l  하나의 비트를 가지고 처리할 수 있는 것은 0,1 2가지

l  2개의 비트가지고 표시할 수 있는 경우의 수는 4가지

1 bit à 2 à

2 bit à 4à

3 bit à 8à     

 

Q. 몇 비트를 모아야 가장 이상적일까?

à 8 bit à256 à  à 1byte(영어 한 글자를 표시할 수 있게 만들어진 체계)

 

 

 

 

<10진수, 2진수>

십진수

0

1

2

3

4

5

6

7

8

9

10

11

12

13

2진수

è  0

è  1

è  10

è  11

è  100

è  101

è  110

è  111

è  1000

è  1001

è  1010

 

10진수는 10개 다 사용하면 자릿수 올라감

2진수는 2개 다 사용하면 자릿수가 올라감

+) 너무 빨리 올라가서 8진수, 16진수를 사용하게 됨. 24진수는 시간에서 쓰임

l  3비트가 꽉 차면 7

 

<8진수: 0을 숫자 앞에 붙임>

0 ( =00)

1 ( =01)

2

3

4

5

6

7

10

l  8진수에는 8이 없고 7까지 있다

l  8진수는 숫자 0앞에 0을 붙으면 8진수의 0이다

l  8진수 영어로 Octal 0을 붙인 거

 

 


 

<16진수(Hexa): 0x를 앞에 붙임>

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

 

 

 

 

 

 

 

 

 

 

à 10대신할 알파벳이 a && a10진수의 10이랑 같음

 

 

 

 

à16진수의 마지막 수는 15이고 f à 0xf (2진수로는 1111)

l  그 진수의 마지막 수는 다 채워진다. Ex) 111

Ex)

=8

n=3

à 3비트가지고 완벽히 다 채울 수 있다.

 

Ex)

하면 16 따라서 4비트만 있으면 단위 1자리수를 표현할 수 있다

1

1

1

1

15 (16진수로 표현하면 f)


 

l  클러스터라고 해서 단위로 잘라서 쓴다.

l  32bit= 한 단위로 사용 =1클러스터

l  32비트를 다 안 쓴다고 하더라도 한 단위로 사용한다.

 

8bit = 1byte

32bit =4byte

 

l  22배수씩 넘어가는 걸 컴퓨터는 더 선호한다.

 

10진수

2323

일의자리부터 시작

3x1 à 3x100

2x10 à 3x101

3x100à 3x102

2x1000à 3x103

 

2진수

10110

0x20=1

1x21=2

1x22=4

0x23=16

1x24=32

1에 해당하는 애들만 다 더해

 


 

2F3C(16진수)

2x163

+Fx162

+3x161

+Cx160

 

 

l  짝수 + 홀수 = 홀수

맨 끝이 1이야 홀수임 1010101011

맨 끝이 0이면 짝수야. 1011101010

 

l  2로 나눠서 나머지 구하면 짝수인 거 알 수 있음

à최적화알고리즘) 마지막에 끝의 비트를 보면 짝수인 거 알 수 있음

Ex) 0xA

10진수/2진수/8진수

0xA à10 /1010/012 (0x는 헥사 값. 16진수나타내는기호)

 

l  음수 표현할 때

Byte의 가장 왼쪽을 부호로 쓰자

음수면 1bit1로 채우고

+1bit0으로 채우자.

8bit를쓰면가장왼쪽부호.그 뒤는 34숫자를 2진수로 바꿔서 씀.

+10

0

0

0

0

1

0

1

0

끝자리부터 10을 채움

나머지 빈 곳은 0으로 채움

-10

1

0

0

0

1

0

1

0

 

l  부호의 절대값

: 부호가 쓰이고 나머지는 절댓값만 들어 감

단점) 연산할 때 문제가 생김.

l  부호와 1의보수

음수일 경우는 절댓값 표현하는 자리를 뒤집어 넣자

단점) 02개가 존재함. 있을 수 없는 일..

 

l  부호와 2의보수(최근에 사용하는 것)


 

문제

1)    1011100

10진수:92

8진수:134

16진수: 5C

2)    111111

10진수: 63

8진수: 77

16진수: 3F

3)    10110

10진수: 22

8진수: 26

16진수: 16

-1 8bit로 바꿔라

1. 부호의 절댓값: 10000001

2. 1의 보수: 11111110

3. 2의 보수: 11111111

 

T. 우리는 2의 보수를 쓴다. (최근 사용하는 것은 2의 보수)

http://blog.naver.com/PostView.nhn?blogId=andjfrrk&logNo=20017501803

https://m.blog.naver.com/PostView.nhn?blogId=javrin4&logNo=220981476412&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

 

숙제) 1. 27-20 비트로 나타내 (부호와 2의보수)

     2. 27-28 비트로 나타내

 

 

 

(한 번 더 검토)

l  8진수는 3bit면 꽉 채울 수 있다.

010/110/01

02/6/5

각자 8진수로 바꿔

 

0/1011/0101

0/B/5

16진수는 4bit만 있으면돼

4개씩 끊어

010110101

 


'C' 카테고리의 다른 글

[20181214] 2차원 배열  (0) 2018.12.14
[20181210]비트활용 && Shift  (0) 2018.12.10
[20181207]정리해야함  (0) 2018.12.10