int A = 22; // 10110
int max = pow(2, (int) log2(A) + 1) - 1; // returns 31 (11111)
< /code>
Этот код поднимает 2 к мощности количества битов A и вычтения 1. < /p>
edit < /strong> < /p>
Поскольку вопрос кажется неясным, вот еще несколько примеров, чтобы помочь понять результат, который я хочу достичь.1000
Я хотел бы получить наивысшее число с n битами в C ++. Я написал этот фрагмент кода, но, возможно, есть более эффективный способ.[code]int A = 22; // 10110 int max = pow(2, (int) log2(A) + 1) - 1; // returns 31 (11111) < /code> Этот код поднимает 2 к мощности количества битов A и вычтения 1. < /p> edit < /strong> < /p> Поскольку вопрос кажется неясным, вот еще несколько примеров, чтобы помочь понять результат, который я хочу достичь.1000[/code] => 1111 [*][code]1010[/code] => 1111 [*][code]100001[/code] => 111111 [*][code]111[/code] => 111