Я не понимаю, почему это дает мне тот же ответ:
long long a = 3265917058 >> 24;
std::cout << a << std::endl; //194
long long ip = 3265917058;
long long b = ip >> 24;
std::cout << b << std::endl; //194
но это не так:
long long a = (3265917058 << 16) >> 24;
std::cout << a << std::endl; //240
long long ip = 3265917058;
long long b = (ip << 16) >> 24;
std::cout << b << std::endl; //12757488 - **i want this to be 240 too!**
Обновление: я хочу 32-битный сдвиг, но как можно я 32-битный сдвиг числа, которое слишком велико для переменной int? Update2: Мой ответ - сделать unsigned int ip. Тогда все будет хорошо.