Я не понимаю, почему это дает мне тот же ответ:
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?Обновление 2: Мой ответ - сделать неподписанный int ip.Тогда все будет хорошо.