실수형 저장 과정(IEEE754) 확인, 제로확장, 부호확장, 마인드스톰(Sound sensor, Touch sensor, ultrasonic sensor)
실수
1. 4byte 저장방식 확인
2. 45000.67을 IEEE754 표준 형식으로 표현
15.375를 IEEE754 표준 형식으로 표현.
⇒15.375 ⇒ float ⇒ 4175b645 ⇒ int ⇒ 1098233413
(참고자료에 업로드 - http://donghwada.tistory.com/43)
#include<stdio.h>
int main()
{
printf("The size of float is %3d byte.\n", sizeof(float));
printf("The size of double is %3d byte.\n", sizeof(double));
printf("The size of long double is %3d byte.\n", sizeof(long double));
return 0;
}
⇒ 실행결과
#include <stdio.h>
int main()
{
unsigned int a=-1;
unsigned char b=-1;
char c=-1;
printf("%d\n",a);
printf("%u\n",a);
printf("%d\n",b);
printf("%u\n",b);
printf("%d\n",c);
printf("%u\n",c);
return 0;
}
unsigned int a에서는 %d는 그대로 -1을 출력하며, %u는 unsigned int 이므로 양수로 출력해 4294967295를 나타낸다.
unsigned char b에서는 1byte가 4byte로 확장되었고 앞쪽의 빈공간은 0으로 채워졌으며 이것을 제로확장이라 한다.
char c에서는 1byte가 4byte로 확장되며 부호비트가 존재하기 때문에 그 부호를 따라 앞쪽의 빈 공간에 1 혹은 0이 채워지게 되는데 이것을 부호 확장이라고 한다.
(참고 자료 - http://donghwada.tistory.com/42)
프로그램에서는 int와 unsigned로 된 변수가 연산이 빠른데 둘 다 최소한의 변환과정을 거치므로 다른 변수들에 비해 연산이 빠를 수밖에 없다.
Mindstorms 실습
Anmial ⇒ spike ⇒ Tail ⇒ 조립(Building) ⇒ NXT programming
Anmial ⇒ spike ⇒ Sound Sensor ⇒ 조립(Building) ⇒ NXT programming
Anmial ⇒ spike ⇒ Reactions ⇒ 조립(Building) ⇒ NXT programming
Reactions Programming
구동영상
꼬리 터치 센서 동작(전진 하다 꼬리의 터치센서가 눌러지면 후진)
구동과정
1) 다리 쪽 모터가 동작해 앞으로 전진 한다.
2) 일정한 시간만큼 전진한 후 꼬리 쪽 모터가 동작하여 앞으로 뻗어진다.
3) 터치센서가 반응하면 로봇은 뒤로 후진한다.
4) 터치센서가 반응하지 않으면 로봇은 동작을 멈춘다.
5) 고리 쪽 터치 센서가 인식되면 다시 처음의 초음파 센서로 이동해
6) 위의 동작을 다시 반복하게 된다.
구동과정
1) 사운드 센서가 소리를 인식하면 다리 쪽 모터가 동작해 앞으로 전진 한다.
2) 일정한 시간만큼 전진한 후 꼬리 쪽 모터가 동작하여 앞으로 뻗어진다.
3) 터치센서가 반응하면 로봇은 뒤로 후진한다.
4) 터치센서가 반응하지 않으면 로봇은 동작을 멈춘다.
5) 고리 쪽 터치 센서가 인식되면 다시 처음의 초음파 센서로 이동해
6) 위의 동작을 다시 반복하게 된다.
구동과정
- 초음파 센서의 거리를 30으로 설정해 두었다.
1) 30의 거리 내에 장애물이 없으면 계속해서 전진한다.
2) 거리 내에 장애물이 인식되면 뒤로 후진한다.
3) 초음파 센서에 거리가 6보다 가까워지면
4) 꼬리 쪽 모터가 움직이며 앞으로 뻗어 나온다.
5) 꼬리 쪽 터치 센서가 인식되면 다시 처음의 초음파 센서로 이동해
6) 위의 동작을 다시 반복하게 된다.
'내장형 하드웨어 > C언어' 카테고리의 다른 글
문자, 문자열, ASCII code (확장 아스키) (0) | 2011.03.30 |
---|---|
C언어 다섯번째 정리 - 실수형 저장 과정(IEEE754) 확인, 제로확장, 부호확장 (1) | 2011.03.29 |
실수의 표현(저장) 방식 (3) | 2011.03.29 |
unsigned와 signed를 사용한 출력 값 비교 (제로확장, 부호확장) (0) | 2011.03.29 |
C 언어 네번째 정리 - 변수형, scanf, 상수, %(숫자)(형식연산자) (0) | 2011.03.28 |