У меня есть следующий код в Ruby.Сдвиг левого бита на 16 в Ruby и C++
x = 33078
x << 16
# => 2167799808
В C++ этот код
int x = 33078;
x << 16
# => -2127167488
Я знаю, что это связано с переполнением, но как я могу получить C++, чтобы дать тот же результат, как Ruby?
Использовать 'long int' – iamnotmaynard
На самом деле, более безопасно использовать' long long' вместо этого. –
Еще лучше использовать неподписанный тип. – jrok