## overflow of numbers

---- ### unchecked math
* overflow and underflow of numbers in solidity 0.8 throw an error. this can be disabled with `unchecked`. * disabling overflow / underflow check saves gas.
``` contract UncheckedMath { function add(uint x, uint y) external pure returns (uint) { // 22291 gas // return x + y; // 22103 gas unchecked { return x + y; } } function sub(uint x, uint y) external pure returns (uint) { // 22329 gas // return x - y; // 22147 gas unchecked { return x - y; } } function sumOfCubes(uint x, uint y) external pure returns (uint) { // Wrap complex math logic inside unchecked unchecked { uint x3 = x * x * x; uint y3 = y * y * y; return x3 + y3; } } } ```