tgoop.com/the_algorithms/4791
Create:
Last Update:
Last Update:
Расширение знака из переменной битовой ширины
Иногда требуется расширить знак числа, но заранее неизвестно, сколько битов, b, используется для его представления. В языках программирования, таких как Java, где отсутствуют битовые поля, это становится особенно актуальным.
Объяснение:
1. Создание маски: 1U << (b - 1) создаёт маску с единицей на b-ом бите.
2. Обнуление старших битов: x = x & ((1U << b) - 1) обнуляет биты в x выше b-ого (если они не обнулены заранее).
3. Расширение знака:
- (x ^ m) инвертирует старший бит, если он установлен.
- m корректирует значение, завершая процесс расширения знака.
BY Алгоритмы и структуры данных

Share with your friend now:
tgoop.com/the_algorithms/4791