Заблокирован Статус: Не в сети Регистрация: 26.07.2006
Есть строка, из неё отбираются цифры, и эти цифры надо записать в число.
Например 34,543.64 посимвольно обрабатывается с первого символа до последнего и записывается в long double, получается сначала 3 -> 34 -> 345 и т.д. Так вот, я использую для сдвига разряда влево умножение на 10, а есть ли какой-то другой путь? Кроме того, как можно сдвигать десятичные разряды вправо незатрягивая целочисленные?
Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
GrIfFiN7 писал(а):
Так вот, я использую для сдвига разряда влево умножение на 10, а есть ли какой-то другой путь?
нету. Если бы числа были в двоичной, 8-, 16-ричной системе счисления, то можно было бы использовать битовые операции сдвига. В данном случае делается тоже самое, но 10-ная система счисления для компа не родная, поэтому только умножением.
GrIfFiN7 писал(а):
Кроме того, как можно сдвигать десятичные разряды вправо незатрягивая целочисленные?
в смысле, дробную часть подтянуть? Просто храни отдельно целую и дробную части, потом, когда закончишь с преобразованиями, объединишь их.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения