Sobes.tech
Junior
165

Wie erhält man eine Zahl, die in binärer Form mit einer einzigen Eins dargestellt werden kann?

Antwort von AI

sobes.tech KI

Это число, являющееся степенью двойки. Наиболее эффективный способ в C/C++ для получения такого числа с единицей в позиции бита n (нумерация с нуля) - использовать операцию побитового сдвига.

// Получить число с единственной единицей в n-м бите
unsigned int get_power_of_two(int n) {
    if (n < 0) {
        // Обработка ошибки или возврат 0/исключения в зависимости от требований
        return 0;
    }
    // 1U - литерал unsigned int, чтобы избежать переполнения при сдвиге
    return 1U << n;
}

// Пример использования
int main() {
    unsigned int num_at_bit_5 = get_power_of_two(5); // Получим число 32 (00100000b)
    unsigned int num_at_bit_0 = get_power_of_two(0); // Получим число 1 (00000001b)
    return 0;
}