Мне нужно извлечь "тысячи" из целого числа (например, 1345 → 1; 24378 → 24), и поскольку мое приложение будет делать это много, мне нужно сделать это эффективно.
Конечно, деление на 1000 - это всегда вариант, но разделение - дорогостоящая операция, поэтому я ищу что-то более эффективное.
Целевая платформа - Android, и, насколько я знаю, большинство платформ Android сегодня не имеют математического сопроцессора, поэтому наиболее предпочтительным способом было бы это сделать по-разному, но я не могу понять, как это сделать что и если это возможно вообще...
Математический сопроцессор будет очень полезен для операций с плавающей запятой, но почти каждый современный процессор будет иметь эффективное целочисленное деление.
Серьезно, просто выполните операцию разделения, это почти наверняка будет лучшим вариантом. Хотя смещение битов полезно для деления по степеням двух (например, 1024), в противном случае это не так хорошо.
int всегда принимает не десятичное answer.so использование
int i=24378/1000;
24378/1000 = 24.378, но int займет 24