- 오버플로우 Overflows
오버플로우는 저장가능한 공간을 초과하는 경우를 뜻한다.
예를들어 uint8은 이진수 11111111이나 십진수255까지만 표현할 수 있는데 여기에 1을 더하면 0이 된다
시계가 23시가 지나면 0시가 되듯.
이러한 것을 오버플로우라고 한다.
- 언더플로우 Underflows
언더플로우는 오버플로우와 반대로 0에서 -1을 하면 11111111(255) 가 되는것
uint8 num = 255; // 최대 255까지만 표현 가능
num++; // 0이 됨
num++; // 1
uint8 num2 = 0;
num2--; // 255
num2--; // 254
오버플로우와 언더플로우가 생기면 문제가 발생할 여지가 있을 수 있다.
수치가 더 커져야하는데 줄어들어버리거나
음수로 가야하는데 커져버리는 경우가 생기니.
그래서 OpenZeppelin라는 곳에서 SafeMath라는 라이브러리를 만들었다고 한다.
이를 이용하면 4가지 함수(add, sub, mul, div)를 사용할 수 있다.
'솔리디티' 카테고리의 다른 글
인터페이스 (interface) (0) | 2022.02.12 |
---|---|
리믹스 이더리움으로 SimpleCoin 트랜잭션 만들어보기 (0) | 2022.02.11 |
storage, memory (0) | 2022.02.11 |
구조체 (struct) (0) | 2022.02.10 |
컨트랙트 contract (0) | 2022.02.10 |
댓글