Здравствуйте, watchmaker, Вы писали:
W>Здравствуйте, tyomchick, Вы писали:
С>>>Есть. Двигать вправо, читать по 4 битика и проверять — не больше ли они, чем 9.
T>>Ну это "в лоб", я думал может какая битовая магия есть.
W>Типа такой, что ли?bool is_bcd(ui32 x) {
W> return 0 == ((((x >> 1) & 0x77777777) + 0x33333333) & 0x88888888);
W>}
W>
Спасибо
W>Неужели этот код настолько часто исполняется, что стоит заморачиваться с подобными оптимизациями?
Ну не то, что бы я заморачивался. Просто вот так же и короче и чуть быстрее работает (проверил).
Полезно в библиотеке функцию иметь.
Даже самую простую задачу можно сделать невыполнимой, если провести достаточное количество совещаний