我不明白爲什麼這給了我同樣的答案:位移位
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。然後一切都會好的。
但我如何得到答案240如果我使用變量?我無法將3265917058存儲在int中。 – Stals 2011-01-20 12:31:43