- Написать программу, которая переворачивает порядок бит в байте. То есть, из 0xE2 (11100010) нужно получить 0x47 (01000111).
- То же самое, но без использования циклов.
Подсказка:Если нас не интересуют циклы, то разумное объяснение этому - жесткие требования к производительности. Когда существуют требования к производительности, то всегда можно чем-то пожертвовать, например, памятью.
— Откуда вы знаете, что я ненормальная? — спросила Алиса.
— Потому что ты тут, — просто сказал Кот. — Иначе бы ты сюда не попала.
— Потому что ты тут, — просто сказал Кот. — Иначе бы ты сюда не попала.
17 марта 2007 г.
Задачи на собеседованиях: биты и байты
Подписаться на:
Комментарии к сообщению (Atom)
по идее и цикл не нужен и жертвовать особо ничем не надо...
ОтветитьУдалитьчто-то типа такого:
a = ((a & 0xAA)>>1)|((a & 0x55)<<1);
a = ((a & 0xCC)>>2)|((a & 0x33)<<2);
a = ((a & 0xF0)>>4)|((a & 0x0F)<<4);
описано в книге Hackers' delight (Henry S. Warren)
Круто, конечно.
ОтветитьУдалитьТолько, кажется, на производитльность все-таки повлияет.