An interrupt controller superior in maintenance performance and expandability. An interrupt controller 10 comprises a queue circuit 11 that holds channel numbers corresponding to interrupt inputs in the order of priority levels, and a queue control circuit 12 that changes the order of the channels held in the queue circuit 11 according to a new order of the priority levels when a priority level that corresponds to any channel number is changed. The order of the channel numbers in the queue circuit 11 is changed at a time of setting the priority levels unrelated to interrupt inputs. In order to select an interrupt to be notified to a CPU 20, an interrupt factor selection circuit 15 checks whether or not each channel number held in the queue circuit 11 has an interrupt input in turn from the head of the queue.