==========================================================================================
제어
=======================================================================================
=자료형 (data type)
변수선언(정의)
size(byte) | type | 범위 |
1 | char | 정수 |
2 | short |
4 | int |
4 | long |
4 | float | 실수 |
8 | double |
=실수의 저장
float 7.25 저장
7.25(10) = 111.01(2)
111.01 => 정규화 => 1.1101 x 2^2
지수부 - 127 = 2 => 지수부 = 129
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
부 호 비 트 | 지수부 129 | 가수부 1101 (소수점 뒷자리) |
=>실제 저장(LITTLE ENDIAN)
=확인용 코드
#include <stdio.h>
int main() { float fNum; unsigned char * ucP;
fNum = 7.25; ucP = (unsigned char *)&fNum;
printf("%02X\n", *ucP); ucP = ucP + 1; printf("%02X\n", *ucP); ucP = ucP + 1; printf("%02X\n", *ucP); ucP = ucP + 1; printf("%02X\n", *ucP); return 0; } |

=>FLOAT 계산 속도 > 정수형 계산속도
=I/O
=scanf("입력받을 형“,입력받을 변수의 주소)

#include <stdio.h>
int main() { int iNum;
printf("입력 : "); scanf("%d",&iNum); // Input - scanf("형",변수의주소) printf("출력 :[%d]\n",iNum);
return 0; } |


=키보드 입력 후 엔터

=출력할 구구단 입력받아 구구단 출력하기
#include <stdio.h>
int main() { int iNum;
printf("출력 할 구구단 입력 : "); scanf("%d",&iNum); // Input - scanf("형",변수의주소) printf("구구단 [%d]단 출력\n",iNum); printf("%d * 1 = %2d\n",iNum,iNum*1); printf("%d * 2 = %2d\n",iNum,iNum*2); printf("%d * 3 = %2d\n",iNum,iNum*3); printf("%d * 4 = %2d\n",iNum,iNum*4); printf("%d * 5 = %2d\n",iNum,iNum*5); printf("%d * 6 = %2d\n",iNum,iNum*6); printf("%d * 7 = %2d\n",iNum,iNum*7); printf("%d * 8 = %2d\n",iNum,iNum*8); printf("%d * 9 = %2d\n",iNum,iNum*9);
return 0; } |

=배열(Array) : 연결되어있음
Smart[0] | Smart[1] | Smart[2] | Smart[3] | Smart[4] |
33FE2C | 33FE30 | 33FE34 | 33FE38 | 33FE3C |
4byte | 4byte | 4byte | 4byte | 4byte |
20byte |

#include <stdio.h>
int main() { //int Smart; // 4byte int Smart[5]; //20byte = 4byte X 5개 printf("Smart[0] 주소 : %08X\n",&Smart[0]); printf("Smart[1] 주소 : %08X\n",&Smart[1]); printf("Smart[2] 주소 : %08X\n",&Smart[2]); printf("Smart[3] 주소 : %08X\n",&Smart[3]); printf("Smart[4] 주소 : %08X\n",&Smart[4]); return 0; } |

=값 입력/출력
#include <stdio.h>
int main() { //int Smart; // 4byte int Smart[5]; //20byte = 4byte X 5개 printf("Smart[0] 주소 : %08X\n",&Smart[0]); printf("Smart[1] 주소 : %08X\n",&Smart[1]); printf("Smart[2] 주소 : %08X\n",&Smart[2]); printf("Smart[3] 주소 : %08X\n",&Smart[3]); printf("Smart[4] 주소 : %08X\n",&Smart[4]); Smart[0] =1; Smart[1] =2; Smart[2] =3; Smart[3] =4; Smart[4] =5;
printf("Smart[0] 값 : %d\n",Smart[0]); printf("Smart[1] 값 : %d\n",Smart[1]); printf("Smart[2] 값 : %d\n",Smart[2]); printf("Smart[3] 값 : %d\n",Smart[3]); printf("Smart[4] 값 : %d\n",Smart[4]);
return 0; } |


=>cl 컴파일은 완료 => run time error (실행 중 에러)
=>컴파일러는 못 찾음 => 배열 코딩 주의
=>c언어 => 시스템 자체가 문제생길 수 있음
=>java언어 => JVM이 죽음(JVM에서 CPU로 넘기므로) => 시스템 자체에는 문제 없음
=문자 배열 : 끝에 0이 없다(charactor)
#include <stdio.h>
int main() { char Smart[4];
Smart[0] ='A'; Smart[1] ='B'; Smart[2] ='C'; Smart[3] ='D';
printf("Smart[0] 값 : %c\n",Smart[0]); printf("Smart[1] 값 : %c\n",Smart[1]); printf("Smart[2] 값 : %c\n",Smart[2]); printf("Smart[3] 값 : %c\n",Smart[3]);
return 0; } |

=문자열 배열 : 끝에 0 이 있다.(String)
=>0을 만날때까지 화면에 출력 => 0이 없으면 문제 생김


=STRING 한번에 대입
#include <stdio.h>
int main() { char Text[5] = "XYZ1"; // 'X''Y''Z''1'0
printf("[%s]\n",Text); // 문자열 출력 (string)
return 0; } |

=한글
-초창기 도깨비칩 => 굼벵이 속도
-아스키코드 7bit
0~127
128~ : 확장형
-2byte 로
#include <stdio.h>
int main() {
char Text[7] = "홍길동"; // '홍''길''동'0 : 한글 2byte * 3 + 1(0) = 7byte
printf("[%s]\n",Text); // 문자열 출력 (string)
return 0; } |

==========================================================================================
회로
=======================================================================================
=모터제어
