일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- StringUtils.isEmpty
- 에러
- carousel slider
- Flutter
- fullBackupContent
- 안보내짐
- Set ID
- VerticalMultiDragGestureRecognizer
- 입력 커서
- 프로그래머스
- gestureRecognizers
- foreground
- runSpacing
- TCP/IP모델
- Chrome Developer Tools
- StringUtils.isBlank
- 두 수의 나눗셈
- 웹뷰
- TextFormField
- project flow
- Flutter SDK
- allowBackup
- Could not create service of type FileAccessTimeJournal using
- freezed
- 크롬개발자도구
- not working
- 앱
- 플러터
- 플루터
- 안드로이드
- Today
- Total
흰오목눈이야 개발하자
[20181206]C 프로그램 설치+수의체계_비트 본문
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 à
<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 && a는 10진수의 10이랑 같음
à16진수의 마지막 수는 15이고 f à 0xf (2진수로는 1111) |
l 그 진수의 마지막 수는 다 채워진다. Ex) 111
Ex)
n=3
à 3비트가지고 완벽히 다 채울 수 있다.
Ex)
1 |
1 |
1 |
1 |
15 (16진수로 표현하면 f)
l 클러스터라고 해서 단위로 잘라서 쓴다.
l 32bit= 한 단위로 사용 =1클러스터
l 32비트를 다 안 쓴다고 하더라도 한 단위로 사용한다.
8bit = 1byte
32bit =4byte
l 2의 2배수씩 넘어가는 걸 컴퓨터는 더 선호한다.
10진수 2323 일의자리부터 시작 3x1 à 3x10의0승 2x10 à 3x10의1승 3x100à 3x10의2승 2x1000à 3x10의3승 |
2진수 10110 0x2의0승=1 1x2의1승=2 1x2의2승=4 0x2의3승=16 1x2의4승=32 1에 해당하는 애들만 다 더해 |
2F3C(16진수) 2x16의3승 +Fx16의2승 +3x16의1승 +Cx16의0승 |
l 짝수 + 홀수 = 홀수
맨 끝이 1이야 홀수임 1010101011
맨 끝이 0이면 짝수야. 1011101010
l 2로 나눠서 나머지 구하면 짝수인 거 알 수 있음
à최적화알고리즘) 마지막에 끝의 비트를 보면 짝수인 거 알 수 있음
Ex) 0xA 10진수/2진수/8진수 0xA à10 /1010/012 (0x는 헥사 값. 16진수나타내는기호) |
l 음수 표현할 때
Byte의 가장 왼쪽을 부호로 쓰자
음수면 1bit를 1로 채우고
+면 1bit를 0으로 채우자.
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의보수
음수일 경우는 절댓값 표현하는 자리를 뒤집어 넣자
단점) 0이 2개가 존재함. 있을 수 없는 일..
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 |