uint8 a =5;uint b =6;// throws an error because a * b returns a uint, not uint8:uint8 c = a * b;// we have to typecast b as a uint8 to make it work:uint8 c = a *uint8(b);
In the above, a * b returns a uint, but we were trying to store it as a uint8, which could cause potential problems. By casting it as a uint8, it works and the compiler won't throw an error.