Re[3]: Быстро проверить на BCD
От: watchmaker  
Дата: 26.06.17 15:20
Оценка: 2 (1)
Здравствуйте, tyomchick, Вы писали:

С>>Есть. Двигать вправо, читать по 4 битика и проверять — не больше ли они, чем 9.


T>Ну это "в лоб", я думал может какая битовая магия есть.


Типа такой, что ли?
bool is_bcd(ui32 x) { 
    return 0 == ((((x >> 1) & 0x77777777) + 0x33333333) & 0x88888888);
}


Неужели этот код настолько часто исполняется, что стоит заморачиваться с подобными оптимизациями? :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.