# Gas Saving Technique 35: Usage of uints/ints smaller than 32 bytes (256 bits) incurs overhead

{% hint style="info" %}
[**Book an audit with Zokyo**](https://www.zokyo.io/)
{% endhint %}

**Introduction:** In Solidity, the Ethereum Virtual Machine (EVM) operates on 32 bytes (256 bits) at a time. When developers use integers of a size smaller than 32 bytes, it can result in higher gas costs. This is due to the additional operations the EVM requires to handle the reduced size. This tutorial explores how to address this inefficiency.

***

**Concept:**

1. **EVM's 32-byte Operation**: The EVM processes data in chunks of 32 bytes. When you provide it with data smaller than this, it has to work harder to fit that data into its operational size, incurring more gas costs.
2. **Integer Downcasting**: Using full-sized integers (like `uint256`) in storage and then downcasting them only when necessary can be more gas-efficient.

***

**Recommendations**:

*Problem*: Using integers smaller than 32 bytes (like `uint8`, `uint16`, etc.) in your contract. *Solution*: Use `uint256` for storage and operations, then downcast only when necessary.

**Benefits**:

1. **Gas Efficiency**: By aligning with the EVM's natural operation size, you can save on gas costs.
2. **Simplified Logic**: By working with larger integers, you often avoid frequent casts and conversions in your code, making the logic clearer.
