Мне было интересно, каковы были ваши идеи по разработке эффективного алгоритма для переключения if / else / case на основе битов.У меня есть 8 битов для игры, и мне нужно разделить их на биты старшего и младшего разрядов, например:
0000 1111
Каждая половина содержит некоторую информационную базу, на которой обращаются битына.Например, если нижняя половина (1111
в этой машине с прямым порядком байтов) на самом деле 0010
, что-то происходит.Кроме того, если верхний предел равен 1000
, происходит что-то еще.
Полагаю, было бы целесообразно сместить права верхнюю половину и сделать AND
сравнение (например, (x >> 4) & 8)
, но я не уверен, чтоумнее делать для нижней половины, так как кажется немного невежливым сдвиг влево и сравнение с каким-то странным числом.
Ваше понимание, опять же, высоко ценится.