Статьи

Небольшое исследование BitOperations и последовательностей де Брёйна

Статьи  /  dotNET  /  Производительность dotNET  /  Performance

Давно я сюда не писал, обходился Telegram и Twitter, но поля их слишком малы, чтобы вместить эту статью :)

Для небольшого исследования в области упаковки чисел мне понадобилось получить минимальное количество бит, требуемое для записи числа. Его, конечно, математически можно получить с помощью двоичного логарифма “округлённого к большему целому” (буду использовать обозначение lg n). Как вы, вероятно, знаете, в .NET Core 3.0 появились intrinsic’и[1], в частности, LZCNT. Она, конечно, возвращает leading zeroes, но вычесть-то из 31 (для индекса в каком-нибудь массиве) или из 32 (для количества бит на число) недолго. Однако, мне было интересно узнать и универсальное решение. В .NET Core 3.0, к счастью, добавили для этого класс BitOperations[2]. А мне, конечно же, захотелось посмотреть его исходники…

Хороший и плохой минимализм

Статьи  /  Дизайн и юзабилити  /  UX UX+Usability  /  Design

Последнее время замечаю, что стал настороженно относиться к фразе “минималистичный дизайн”. Идея-то, чаще всего, хорошая. Особенно, когда не пытаются её применить к интерфейсу, который действительно должен содержать много элементов.