Установите значения на правой стороне заказанного челнока в АПД

Вы не можете использовать 1 (int по умолчанию), чтобы переместить его за пределы int.

Существует более простой способ получить «все биты, кроме включенного MSB», для определенного типа данных

#include <iostream>
#include <limits>

using namespace std;

int main(){
    unsigned long int max = std::numeric_limits<unsigned long int>::max();
    unsigned long int max_without_MSB = max >> 1;
    cout<< max_without_MSB <<endl;
    return 0;
}

Обратите внимание на неподписанный тип. Без numeric_limits:

#include <iostream>
using namespace std;

int main() {

    long int max = -1;
    unsigned long int max_without_MSB = ((unsigned long int)max) >> 1;
    cout << max_without_MSB << endl;

    return 0;
}
0
задан SaintLike 25 February 2015 в 10:18
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: