потому что это эквивалентно побайтной обработке, но на реальных процессорах вполне могут оказаться инструкции, которые ровно вот это делают совсем иначе
например на powerpc я видел инструкцию "сделать сдвиг и наложить маску". Тогда тут было бы четыре вызова этой инструкции плюс ксоры. Но эта инструкция принимает 32-битное слово, а не один байт
потому что это эквивалентно побайтной обработке, но на реальных процессорах вполне могут оказаться инструкции, которые ровно вот это делают совсем иначе
по твоему мнению тут оптимизация очевидна по сравнению с 8ми битной версией?
я просто отталкиваюсь от своего опыта, когда я видел реализацию strlen для юникодных строк. Наивная реализация это просто пройтись по байтам, оптимизированная это неоновские интринсики для векторных операций.
но для векторных операций помимо собственно работы требовалось также сначала инициализировать нужные данные, а в конце выгрести результат. В итоге экспериментально было получено, что для строк длиной менее 13 байт наивная реализация работает быстрее