Remember to watch its power dissipation though - It will be dropping 4V so will dissipate 4x whatever current you are drawing. At 1 amp it will dissipate 4 watts. If you are connecting a lot, it will need a heat sink.
Thanks all, I have read the datasheet of MCP23016 but I have confused about something.
I would like to know how to connect the INT terminal? connect to MCU interrupt pin?
Is it expensive? More replacement?
You can connect the MCP23016 to an interrupt input on the MCU; tie the line high with a 10K resistor because the MCP23016 has an open-drain output and will pull it low when active, but not high.
You do not need to use it unless you want the interrupt when an input is changed.
As to cost - depends where you are and who you buy from. They are not expensive though - around US$1.50 or so in small quantities.
Assume I have to receive the sequential data, the INT connect to MCU; When the input data change, the INT push to low position causing the MCU interrupt.
Then, MCU send the command to select the data and through the SDA receiving the data until total 1-byte. Is the operation correct?