Лучше всего использовать "родную" разрядность.
Например 32 бита для x86 в режиме 386. Или 64 для современных.
У современных процессоров (x86/64) АЛУ обычных (не SSE) команд заточено под размер регистров. Действия для 64 бит одного операнда и 64 бит другого операнда выполняются одной микрокомандой. Для 32-битной арифметики у 64 битных процессоров есть соответствующие маски. Т.е. что 64 битная команда, что 32 битная - всё равно одна микрокоманда.
Но если используется 8битная арифметика, то некоторые современные процессоры впадают в ступор (пропускают такты) на примитивнейших командах типа ADD AH,AL. Дело в том, что здесь действие-то выполняется над частями одного регистра EAX (один и тот же регистр одновременно и первый операнд, и второй операнд и результат).
Но на самом деле не всё так просто. Сейчас новая парадигма программирования - принцип локальности данных.
Программисты стараются расположить рядом совместно используемые данные чтобы они поодновременнее попадали в кэш-память.
Соответственно, если уместите свои переменные в меньшее количество строк кэш-памяти, то и загружаться данные будут быстрее.
Итак резюме. Если данных много (мегабайты), то по возможности сжимайте их и используйте чуть ли не побитно. Усложнение программы будет незначительным, а эксплуатация кэша снизится многократно.
Если же данные целиком лезут в кэш-память, то извращаться не надо. Более того, и x86 пользоваться не надо - лучше переходить на SSE/AVX https://ru.wikipedia.org/wiki/AVX - там и регистров больше и в каждый можно запихнуть несколько переменных.
А вообще, компиляторы сейчас пошли шибко умные и сами могут делать SSE/AVX при указании соответствующих ключиков.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
