아두이노 정리(레퍼런스 위주)

낭만개발자·2020년 12월 29일
0

IOT

목록 보기
3/9

자료형

메모리에 65라는 값이 정해진다면, 데이터형이 int로 선언되면 65가 숫자일거고, char로 정의 됐다면 아스키코드 값 65에 해당하는 'A'로 해석된다.

이렇게 동일한 값이 메모리에 저장되어 있어도 어떤 데이터형으로 선언하느냐에 따라 완전 다른값이 됨.
즉 자료형이란, 메모리에 데이터를 어떤 형태로 읽을 것인지 정의하는 방법

구체적 자료형은 구글.
주의할 것이 int라 해도 다 같은 int가 아니라 걍 int는 4 Byte, unsigned __int8 는 1Byte 등 무슨 int냐 따라 다름.

예로 __int16, unsigned __int16 둘다 메모리 2Byte, 사용범위는 unsigned __int16는 음수 없이 0~65535.
즉, unsinged int num = 65535 에서 num은 메모리 2B를 사용한다는 뜻.
(대부분의 마이크로보드는 int16_t면 충분하겠다. 값이 4096 안팍이니.. 음수면 물론 int로..)

이걸 보고 이상하다 생각해서.. int에 왜 16진수가??
찾아보니까.누군가의 답변이

그렇다
int header = 0xA8A8 에서 10진수 43176 === 0xA8A8하고 같다는 뜻이다. 즉 표현만 달리한 것이다.

2진수 표시할 때는 '0b', 16진수 표시할땐 '0x'
즉 0x31은 16진수로 31이란 말.
mcu 프로그래밍할 때 2진수 16진수 개념이 중요한 이유가,
레지스터들 대부분 size가 8-bit 이기 때문.

즉 1Byte 크기의 LTE 변수가 있다고 하면
LTE = 0b10101010; 2진수로 프로그래밍 한다고 치자.
그럼 bit7번째 부터 4번째 까지 1010은 10진수로 10이고 16진수로 A를 의미. bit 3~0번째 까지 1010또한 16진수 A를 의미.
따라서 LTE = ob10101010;은 = 0xAA; 랑 같음

진법 설명

1Byte 변수일때

참고 : https://m.blog.naver.com/PostView.nhn?blogId=seo0511&logNo=10188140316&proxyReferer=https:%2F%2Fwww.google.com%2F

http://webs.co.kr/index.php?mid=Programming&document_srl=3320312

자료형 변환

아두이노 TIP, String <-> char 변환
및 각종 자료형 변환
참조 :
https://m.blog.naver.com/PostView.nhn?blogId=yuyyulee&logNo=220983167239&proxyReferer=https:%2F%2Fwww.google.com%2F

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글