unsigned int
설명
우노 그리고 다른 ATMEGA 기반 보드에서, unsigned int (부호없는 정수)는 2바이트 값을 저장하는 int와 똑같다. 그러나 음수를 저장하는 대신 양수(0 에서 65,535((2^16) - 1)의 범위) 만 저장한다.
Due는 4 byte (32-bit)값(0에서 4,294,967,295 (2^32 - 1) 범위)을 저장한다.
unsigned int 와(부호있는) int의 차이는 가장 높은 비트(때때로 "sign" 비트로 참조되는 비트)를 해석하는 방법이다. 아두이노에서 int (부호 있음) 형에서, 높은 비트가 "1"이면, 그 수는 음스로 해성되고 다른 15비트는 (2's complement math)로 해석된다.
문법
unsigned int var = val;
매개변수
- var - unsigned int 변수 이름
- val - 변수에 할당하는 값
예제 코드
※ 주의 및 경고:
부호없는 변수가 그 최대 용량을 넘으면 0으로 "roll over" 되면, 다른 경우는 아래와 같다:
부호없는 변수를 가진 수학은 기대하지 않은 결과를 일으킬 수 있다, 부호없는 변수가 롤오버 안 되더라도.
MCU는 아래 규칙을 적용한다:
계산은 대상변수의 scope 에서 이루어진다. 예를들어, 대상변수가 부호 있으면, 두 입력 변수가 부호 없더라도, 부호있는 연산을 한다.
그러나 중간 결과가 필요하면, 중간결과의 scope는 코드에서 정해지지 않는다. 이 경우, MCU 는 부호 없는 연산을 하는데, 왜냐면 두 입력이 부호없기 때문이다!
왜 부호없는 변수를 쓸까?
- 롤 오버 필요, 예를들어. 카운터
- 부호있는 변수는 약간 작지만, long/float의 메모리와 속도 손실을 피하려 한다.
더보기
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |