mindstorms, 변수형 비교
mindstorms 실습
RoboArm T-56 제작
guide line에 따른 조립 및 프로그램
실행과정 동영상
라이트 센서가 빨간색을 인식하고 공을 들어 옆으로 옮겨 놓는 과정
라이트 센서 를 이용해 파란 볼은 확인후 옮기지 않고 도로 내려 놓는 과정
터치 센서가 공으로 다가가 공을 잡고 옆의 받침대로 옮기는 과정 구현
C 프로그래밍 수업
#include <stdio.h>
int main()
{
char cNum; //메모리에 cNum이란 이름으로 1byte 할당
cNum = 127; //cNum에 127을 대입
printf("%d",cNum); //cNum값을 10진수 정수형으로 출력
return 0;
}
#include <stdio.h>
int main()
{
unsigned char cNum; //메모리에 cNum이란 이름으로 1byte 할당
cNum = 127; //cNum에 127을 대입
printf("%d\n",cNum); //cNum값을 10진수 정수형으로 출력
cNum = 255;
printf("%d\n",cNum); //char는 1byte 이므로 255까지 표현할 수 있고 127보다 커지면 -가
붙으며 줄어든다.
cNum = 128;
printf("%d\n",cNum);
return 0;
}
unsigned char cNum; // unsigned는 양수로 쓰겠다는 뜻.
signed char cNum; // signed를 첨부한것과 생략하고 변수만 사용하는 값은 같다.
char cNum; //
#include <stdio.h>
int main()
{
unsigned char cNum; //메모리에 cNum이란 이름으로 1byte 할당
//signed char cNum; //
//char cNum; //
cNum = 127; //cNum에 127을 대입
printf("%d\n",cNum); //cNum값을 10진수 정수형으로 출력
cNum = 255;
printf("%d\n",cNum); //char는 1byte 이므로 255까지 표현할 수 있고 127보다 커지면 -가 붙으며 줄어든다.
cNum = 128;
printf("%d\n",cNum);
cNum = 256;
printf("%d\n",cNum);
cNum = 257;
printf("%d\n",cNum);
cNum = 0;
printf("%d\n",cNum);
cNum = cNum-1 ;
printf("%d\n",cNum);
return 0;
}
char 변수 사용시 127을 넘어가면 -128, -127, -126...-1로 나타난다.
→ 즉 0과 255는 연결되어있고 이것이 반복되고 있다고 볼 수 있다. (1byte의 경우.)
short 변수 사용시 32767을 넘어가면 -32768,-32767....-1로 나타난다.
→ 즉 0과 65535는 연결되어있고 이것이 반복되고 있다고 볼 수 있다. (2byte의 경우.)
1byte = 8bit = 28 = 256(0~255)
216 = 65536(0~65535)
즉, unsigned 일 때 -1장 큰수로 나타난다.(해당 변수 범위의)
평상시에는 변수 앞에 signed를 생략하고 있다.
signed는 해당 변수의 양의 정수를 선언
unsigned는 해당 변수의 정수를 선언
#include<stdio.h>
int main()
{
//unsigned short sNum; //2byte 32short형 양수 sNum이란 이름 선언
signed short sNum;
sNum = -1; //-1을 sNum에 대입
printf("%d\n", sNum);
sNum = 32767;
printf("%d\n", sNum);
sNum = 32768;
printf("%d\n", sNum);
sNum = 32769;
printf("%d\n", sNum);
return 0;
}
변수 : 변하는 숫자를 기억한다.
(ex. cNum = -1이라 하면 255가 저장되며, 100을 넣으면 100이 저장된다.)
변수선언 사이에 다른 명령문을 넣어서는 안된다.
#include<stdio.h>
int main()
{
unsigned char cNum; //1byte char형 양수 cNum이란 이름 선언
unsigned short sNum; //2byte short형 양수 sNum이란 이름 선언
unsigned int iNum; //4byte int형 양수 iNum이란 이름 선언
cNum = -1;
sNum = -1;
iNum = -1;
printf("cNum:[%d], sNum[%d], iNum[%d]\n", cNum, sNum, iNum);
sNum =cNum;(sNum에게는 cNum의 대입은 255의 대입과 같다.)
printf("cNum:[%d], sNum[%d], iNum[%d]\n", cNum, sNum, iNum);
return 0;
}
char, short, int 각각의 표현가능한 최대수와 바이너리 값을 찾기 위해서는 unsigned 에 -1 을 넣으면 된다. 최대값에 반이 바이너리 값이다.
'내장형 하드웨어 > MindStorm' 카테고리의 다른 글
mindstorms 실습 - Humanoids (Alpha Rex) (0) | 2011.04.01 |
---|---|
mindstorms 실습 - line tracer 동작 (0) | 2011.03.31 |
mindstorms 실습, word, 변수, 형식 지정자 (0) | 2011.03.24 |
마인드 스톰 (mindstorms) 조립 및 동작 실습 (0) | 2011.03.23 |
PC의 계보와 역사 (0) | 2011.03.11 |