Es literalmente 32 elementos de un byte (8 bits) ... 8*32 → 256
Con bit shifting vas a poder revisar en particular alguna tecla (bit), pero no es portable esta forma de revisar el estado del teclado (los codes pueden variar, acordate que es una lectura RAW del teclado) ... por lo que si vas a usar para keylogger, guardá los keycodes directamente o elaborate todo un código que lidie con los keymaps.
Acá tenés un ejemplo →
http://www.cs.bgu.ac.il/~orlovm/code/realkey.C // Otro →
http://ur1.ca/9itl4y una ayudita extra : setxkbmap -query
Ahí tenés tres códigos de ejemplo
Saludos.