Вы можете просто переосмыслить проблему, это не должно быть узким местом. Возьмите наивный алгоритм (написанный на CLI-сборке, просто для удовольствия). давайте предположим, что номер, который мы хотим, находится в местном номере 0
LDLOC 0
SHL 24
LDLOC 0
LDC.i4 0x0000ff00
SHL 8
OR
LDLOC 0
LDC.i4 0x00ff0000
SHL.UN 8
OR
LDLOC 0
SHL.UN 24
OR
Максимум 13 (x86) инструкций по сборке на число (и, скорее всего, интерпретатор будет еще умнее, если использовать умные регистры). И это не становится более наивным, чем это.
Теперь сравните это с затратами на
- Загрузка данных (включая любые периферийные устройства, с которыми вы работаете!)
- Манипуляция данными (например, сравнение)
- Вывод результата (каким бы он ни был)
Если 13 инструкций на число являются значительным фрагментом вашего времени выполнения, то вы выполняете ОЧЕНЬ высокопроизводительную задачу и должны иметь свой ввод в правильном формате! Вы также, вероятно, не будете использовать управляемый язык, потому что вам нужен гораздо больший контроль над буферами данных и чем-либо еще, и без дополнительной проверки границ массива.
Если этот массив данных попадает в сеть, я ожидаю, что затраты на управление сокетами будут намного выше, чем на простое изменение порядка байтов, если оно выполняется с диска, перед тем как выполнить эту программу, подумайте о предварительном переключении.