블로그 이미지
송시혁

calendar

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 29 30

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

2013. 3. 6. 09:40 2월 수업정리

진법

2 - 0,1

8- 0,1,2,3,4,5,6,7

16 - 0,1,2,3,4,5,6,7,8,9,A,B,C,D,D,E,F

ex) 십진수 10

2진수로 변환

2진법

2의 세제곱 = 8진법 =2진수 3자리가 8진수

2의 네제곱 = 16진법 = 2진수 4자리가 16진수

ex) 110101

1. 8진수

위에서 말했듯이 2진수 3자리가 8진수이므로 3자리를 쪼개어 생각한다

110 /101

110 = 6

101=  5

따라서 110101의 8진수는 65

2.16진수

11 /0101

11=B

0101 =5

따라서 B5가 16진수이다.

 

2진수 계산 = 생략, 다아니깐ㅎㅎㅎ

8진법 계산 ex)76+2 = 100

76

+

2

100

그 이유는 6+2 =0 8진법에서는 0~7이다. 8이 되면 10진법의 에서 9+1이 10이고 한 자리수에 올라가듯이 8진법에서도 6+2에서 0이되고 1이 올라간다. 그리고 7과 더해져서 7+1이 되어 0이 되고 한자리가 올라가서 100이 된다.

반대로 2진수로 변환

8진수 165

1/ 6/ 5

1= 1

6 = 110

5 = 101

1110101이된다.

16진수 75

7=111

5=101

1110101 여기서 잠깐 111101이 아님!!!

위의 글을 잘보면 16진수는 네자리가 2진수 한 자리라고 되어있다

이점을 놓치지 않아야 한다. 111 101의 공백부분의 0을 써야한다

따라서 0111 /0101이 된다. 그래서 붙이면 1110101이 된다. 제일 앞에

0은 아무의미 없으니 안써도 된다. 보기좋으니깐

ㅎㅎ

소수점 2진수로 변환하기

 

예) 1.5를 2진수로 변환하면, 1.1이 된다.

위의 소수인 1.5는 당연히 그대로 놔둔다. 소수점만 생각하는데

0.5를 2로 곱한다. 그러면1.0이 된다

10진수를 2진수로 변환시에는 2로 계속 나누지만 반대로 소수점을 2로 곱한다.

곱해서 0이 되면 멈추고 그의 숫자를 기입하면 된다. 위의 0.5를 2로 곱하여 1.0이 나왔다.

그 1.0의 1을 적으면 된다. 그래서 1.5의 2진수는 앞에 1.5의 1은 그대로 적고 뒤에 0.5를 곱하여 나온 1.0에 1을 소수점 자리에 적게 되면은 1.1이 되는 것이다.

그런데 1.4를 예를 들어보자.

1.4도 마찬가지로 1은 그대로 놔두고 0.4를 2로 곱해보자

0.4*2 = 0.8 ->0

0.8 * 2 =1.6 ->1

여기서 1.6의 0.만 곱한다. 1은 없다고 친다.

0.6*2 =1.2 -> 1

0.2*2 =0.4 -> 0

여기서 낌새를 챈다. 0.4가 다시 나왔다.

그래서 곱해도 계속 같은 형식으로 반복이 될것이다

0, 1, 0, 0, 1, 0.......

이런식으로 반복이 된다. 따라서 1.4를 2진수는 1.010010010......

이런식으로 반복되어 완벽히 표현할 수 없다.

8비트 연산개념

부호가 1이면 - , 0이면 + 이것을 부호비트라고 한다.

부호

숫자

-

1

1

1

1

1

1

1

1

+

0

1

1

1

1

1

1

1

 

 

 

 

                        0                         127    128                                 255

 

 

     0                             127    128                      255

오른쪽 128에서 255를 왼쪽으로 옮기면, 아래 그림처럼 된다.

              128    129  130.....            255  0 1  2.....

               (-128) (-127) (-129)                (-1)

8비트 10진수 변환시 1111 1111 255이다. 그러나 이것은 -1로 나온다.

 

부호비트를 잘생각해보자.

0000 0001 -> 앞에 0이 붙으면 +

1111 1111 -> 앞에 1이 붙으면 -

1의 2진수 = 0000 0001 -> 1

255의 2진수 = 1111 1111 -> -1

1은 0000 0001.

 

보수법

10진수의 10의 보수와 9의보수.

1. 9의 보수

연산을 했을 때 각자리수가 9가 되게 하는 수이다.

예를 들어서 371이라는 숫자가 있는데 371의 9의 보수는 다음과 같다.

   3    7     1

+ 6    2     8 

 

  9     9     9

더셈해서 9가 되게 하는수 이것이 9의 보수!

371의 9의 보수는 628이다.

10의 보수는 얼마인가??

10의 보수는 9의 보수에서 +1을 해주면 된다.

따라서, 371의 10의 보수는 629가 된다.

2진수.

2진수에서는 1의 보수와 2의 보수가 존재한다. 1의 보수는 더해서 1이 나오게 하는 값이다

2진수는 1과 0 밖에 존재하지 않으므로 2진수의 1의 보수는 반대로 쓰기만 하면 더해서 1이나오게 하는 값이 나온다.

다시 말해서, 어떤 수가 있으면 반대로 쓰면 된다. 0이면 1, 1이면 0.

   1 0 1

+ 0 1 0 -> 이것이 101의 1의 보수.

2의 보수 = 1의 보수 + 1

010 + 1은 011 이것이 2의 보수이다.

 

 

음수 찾기.

 

128    129                       255  0    1

-128  -127 -126                 -1  0   1 2  3                            127           

이것을 보고 이해해야 한다. 일단 가장쉬운 1과 -1관계.

8비트에서 2진수는 1은 0000 00001 이거의 1의 보수는

1111 1110이 된다. 여기에서 1을 더하여 2의 보수를 만들면 1111 1111이된다.

10진수로 변환하면 255가 된다. 255는 실제로 -1이된다.

1과 -1은 2의 보수 관계

따른 숫자도 마찬가지로 2의 보수관계에 놓여있다.

73과 -73

73 = 01001001

역으로 쓰면 10110110 여기서  +1하면

10110111 10진수 변환하면 183 하지만 183은 -73이다. 255 - 183 = 72 이것은 255로 부터 72만큼 떨어져 있다. 255가 -1이니 -72가 아니라 -73이 나온다. 이것을 증명하기 위해 역으로 보수법을 취해보자.

10110111을 1의 보수 01001000이다. 다시 1을 더하면 01001001이된다. 73과 동일한 숫자로 나온다. 73의 음수 -73은 서로 2의 보수관계이며 10진수로 183이된다.

이것을 이용하면 뺄셈이 가능하다. 기본적으로 컴퓨터는 뺄셈을 못한다.

그러나 위의 보수법으로 빼고자 하는 수를 음수로 만들면 가능하다. 예를 들어 3-2 =1

여기서 2를 -2로 고치면 된다.

0000 0010의 역수 1111 1101 +1 = 1111 1110 이것이 -2이다.

3의 2진수 0000 0011

   0000 0011

+ 1111 1110

 10000 0001이된다. 9자리가 된다.

앞에 1은 8비트에서 표현을 못하여 0000 0001이된다.

3-2 = 1과 같은 동일한 값이 나온다.

 

'2월 수업정리' 카테고리의 다른 글

2월 20일 수업정리  (0) 2013.03.04
2월 28일 수업정리  (0) 2013.02.28
2월 27일 수업정리  (0) 2013.02.27
2월 19일 수업정리  (0) 2013.02.26
2월18일 수업정리  (0) 2013.02.26
posted by 송시혁
2013. 3. 4. 09:11 2월 수업정리

1. 보고서 작성 요령

2.회로도 및 회로도와 실제기판 보는법

3.반도체의 기본, 동작원리, diode와 트랜지스터

1.

 

2.

 

위의 그림에서 가로 세로의 각각 알파벳과 숫자가 나열 되어있다. 가로 숫자 5번까지 세로는 알파베 A~D까지 있다. 물론 이것은 그림에 회로도의 경우이며, 이것보다 크다면 더 넒은 범위의 숫자와 알파벳이 있을 것이다. 이것은 좌표를 뜻하는 것으로 예를들어 (5,D)라면 아래 그림과 같은 영역을 나타낸다. 이 좌표를 보는 법을 알고 있으면, 회로도에서 찾고자 하는 부분을 쉽게 찾을 수 있다.

 

 

위에 타이틀 부분은 말그대로 회로도의 이름이다 AT91SAM7S64 BOARD

Size A2 사이즈 A2 우리가 제일 많이 쓰는 A4등의 종이 사이즈를 뜻한다.

밑에 date는 날짜와 요일. sheet는 시트. 이건 번역이 좀......

rev A이부분도 보류ㅜㅜ

 

3. 반도체

반도체란 말 그대로 절반만 도체인것. 어떤게 절반?? 물체의 성질이 절반만 도체라는 뜻이다. 보통 전기가 통하는 물질을 도체라 하고 흐르지 않는 물질을 부도체 혹은 절연체라고 한다.

 

'2월 수업정리' 카테고리의 다른 글

2월 21일 2진수, 8진수 , 16진수 2의 보수 관계  (0) 2013.03.06
2월 28일 수업정리  (0) 2013.02.28
2월 27일 수업정리  (0) 2013.02.27
2월 19일 수업정리  (0) 2013.02.26
2월18일 수업정리  (0) 2013.02.26
posted by 송시혁
2013. 2. 28. 09:36 2월 수업정리

위의 동영상은 연습ㅋㅋㅋ

 

 

 

아래 동영상은 타이어 올리기 시합. 연습땐 컨트롤이 잘되었는데 실전에서 긴장해서 그런지.... ㅜㅜ 완패

상대방의 모델이 지게차!!! 아이디어 싸움에서도 완패하여 컨트롤이 힘듬. 그래도 컨트롤이 자신있어서 따로 개조 하지 않았음.

'2월 수업정리' 카테고리의 다른 글

2월 21일 2진수, 8진수 , 16진수 2의 보수 관계  (0) 2013.03.06
2월 20일 수업정리  (0) 2013.03.04
2월 27일 수업정리  (0) 2013.02.27
2월 19일 수업정리  (0) 2013.02.26
2월18일 수업정리  (0) 2013.02.26
posted by 송시혁
2013. 2. 27. 10:39 2월 수업정리

원래 공을 들고 골을 넣으려 했는데 컨트롤을 너무 못해서 실패....ㅜㅜ

아래는 정면사진ㅋㅋ 디자인은 별로지만 성능은 나쁘지 않음.

몸싸움도 밀리리 않고 공을 들수있고 슈팅까지 가능함 하지만 로봇 축구에서 가장 중요한것은 컨트롤이다!!!!!

'2월 수업정리' 카테고리의 다른 글

2월 20일 수업정리  (0) 2013.03.04
2월 28일 수업정리  (0) 2013.02.28
2월 19일 수업정리  (0) 2013.02.26
2월18일 수업정리  (0) 2013.02.26
2월 25일 수업내용 C언 실행순서  (0) 2013.02.24
posted by 송시혁
2013. 2. 26. 16:19 2월 수업정리

프롬프트 개념

C:\[파일명]\[파일명]\[파일명]>

\- 의미: 디렉터리와 디렉터리간의 경계

              \-한글모드, 역슬래쉬-영문모드

단, 리눅스와 유닉스는 그냥 /

attrib 엔터, 그러면 여러파일 중에 파일명 SHR이 있다.

S=시스템 system의 약자 H= 숨김 Hidden의 약자

cd % system root% ->C:windows (root = 최상위) 최상위로 이동하는 명령어

set → path = window32까지 드래그 우클릭(프롬프트 내에 복사 방법, 컨틀롤 C는 안됨)

탐색기 (도우즈키 + E키) → 아까 위에 프롬프트에서 복사한 것을 붙여넣기 아무것도 누르지 않고 종류 탭 클릭

바탕화면에 폴더 만들기&폴더 지우기

명령어인 mkdir,rmdir이 중요하다  

1.경로지정을 한다.

2.명령어 mkdir을 친후 smart라고 입력한다.

3.rmdir 입력후 smart라고 입력한다.

4.windows와 비교한다.

 

 

절대 경로 vs 상대 경로

절대 경로 이동    :    cd 절대값경로

상대 경로 이동    :    cd 상대값경로

. 현재 디렉터리        .. 상위 디렉터리

절대경로

cd document....(생략)\adminis....(생략)\바탕화면

= all user 하위 디렉터리인 바탕화면을 위와 같은 방법으로 adminis...로 다시 되돌린다. 즉, 명령어를 복사 혹은 직접입력

상대경로

....> cd ..\..\all users\바탕화면 = all user가 바탕화면 상위폴더가 된다. 즉, 바탕화면이 all user 안으로 들어간다.

 

 

 

    

'2월 수업정리' 카테고리의 다른 글

2월 20일 수업정리  (0) 2013.03.04
2월 28일 수업정리  (0) 2013.02.28
2월 27일 수업정리  (0) 2013.02.27
2월18일 수업정리  (0) 2013.02.26
2월 25일 수업내용 C언 실행순서  (0) 2013.02.24
posted by 송시혁
2013. 2. 26. 16:16 2월 수업정리

전류:A

전압:V

 

5A250VAC

5A30VDC 직 ->5A,30V까지 버틴다.

초음파 센서

메탄

RELAY

온도센서

빛센서

발광다이오드(LED)

AC

DC

 

'2월 수업정리' 카테고리의 다른 글

2월 20일 수업정리  (0) 2013.03.04
2월 28일 수업정리  (0) 2013.02.28
2월 27일 수업정리  (0) 2013.02.27
2월 19일 수업정리  (0) 2013.02.26
2월 25일 수업내용 C언 실행순서  (0) 2013.02.24
posted by 송시혁
2013. 2. 24. 11:57 2월 수업정리

C->compile -> 기계어로 바꾼다.

compiler-> 컴파일 전용프로그램.

                                       

IDE-통합개발환경 ex) C언어 프로그램 작성시 명령문 색깔 구분, #include 파란색, <stdio.h> 갈색

C언어 첫 단계

file- new(Ctrl + Shift + N) -project (C++ 선택,  win32 Console Application 선택)

위의Name :<Enter_name> 이 부분의 파일 이름을 지정하면 밑에 파란줄 친 부분도 똑같은이름으로 바뀐다. 빨간줄과 파란줄 이름은 반드시 같아야 한다.

이 화면이 뜨면  Next 버튼을 누른다.

이 화면이 뜨는데 어플리케이션 타입지정과 옵션 지정이다. 새로 프로그램을 작성하므로 옵션은 Empty project 빈 문서를 선택하며, 타입은 Console로 지정한다.

 

이 화면에서 왼쪽에 Source Files우클릭, Add ->New item 선택한다.

이 화면에서 C++ File(.cpp) 선택 후, 이름을 지정하는데 파일이름.c를 한다. 이 프로그램 자체는 C++이므로 그냥 파일이름을 지정하면 확장자.cpp가 된다. 이것은 C++ 프로그램이므로 기본적으로 그렇게 지정된다. 그러나 C++에서 C를 작성하는 것이므로 파일이름에 .c를 붙이면 C프로그램을 작성하게 된다. C++과 C는 다른 파일이다!!

프로그램을 작성한다. 필자는 printf문 뒤에 ;안붙여서 애먹었다.ㅜㅜ

프로그램 설명은 아직....

 

프로그램 작성하다 변경된 부분이다. 참고.

include <stdio.h>
void main() {
     pritntf ("the first C program example.\n");
}

#include <stdio.h>
int main() {        (*void에서 int로 변경)
 printf("the first C program example.\n");
 return 0;          <- return 0; 추가
}

#include <stdio.h>
int main()
             <-중괄호를 내리다.
 printf("the first C program example.\n");
 return 0;
}

위의 중괄호인 {}의 앞부분 위치가 동일해야한다.

 

다음단계 컴파일 단계

 

debug - option setting -text editer +버튼 눌려서 늘이기 C/C++선택

             오른쪽에 line number체크 (통합개발환경)

Build- Compile

 

 

 

 

 

 

 

 

debug - option setting 에 들어간다.

 

 

 

이 화면에서 text editer +을 누른다. 그리고 C/C++을 선택하고 오른쪽에 Display 부분에 Line numbers를 체크한다. Line numvbers는 명령문에 색을 띄게 하여 오류나 잘못된 게 있으면 빨리 찾는데 도움이 된다.(통합개발환경)

그리고 Build- compile을 선택한다.

 

 

 

 

 

 

그리고 Ctrl + F5키를 선택하면 잠시 후에 아래와 같은 화면이 뜬다.

printf문에 작성한 내용이 출력된다.

 

debug - option setting -text editer +버튼 눌려서 늘이기 C/C++선택

             오른쪽에 line number체크 (통합개발환경)

 

'2월 수업정리' 카테고리의 다른 글

2월 20일 수업정리  (0) 2013.03.04
2월 28일 수업정리  (0) 2013.02.28
2월 27일 수업정리  (0) 2013.02.27
2월 19일 수업정리  (0) 2013.02.26
2월18일 수업정리  (0) 2013.02.26
posted by 송시혁
prev 1 next