Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101

Как ускорить преобразование ToString?

17.03.2013, 12:12. Показов 3025. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли как-то ускорить преобразование .ToString()? Занимает ну оооочень много времени. Нужно записать большое число в файл. Может как-то с помощью массива байтов? Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2013, 12:12
Ответы с готовыми решениями:

При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++
При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++. Соответственно, это не работает, работает...

Разница между string.Concat(x,y) и x.ToString()+y.ToString()
Вроде как одно и то же, но дает разные результаты в операции поиска палиндромов. К примеру, взять число 1010: ...

Преобразование изображения: ускорить работу кода
Добрый. Как можно ускорить следующий код? Мне необходимо конвертировать определенный цвет в пространстве RGB в пространство LAB. Я хочу...

23
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
28.04.2013, 20:05  [ТС]
Студворк — интернет-сервис помощи студентам
А можно ли как-то преобразовывать число " по частям"? Т.е., допустим, есть число:
170141183460469231731687303715884105727
записанное в Hex:
7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Мы берем часть числа, например:
7FFFFFFFFFFFFFF
Преобразуем в BigInteger, а затем в String. Затем берем другую часть:
FFFFFFFFFFFFFFFFF
Также преобразуем в BigInteger, а затем в String. И напоследок "сшиваем" эти части.
Реально ли это? Что-то мне кажется, что нет, но может я ошибаюсь.

Мне бы сам алгоритм продумать...
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
28.04.2013, 21:16
west0293, чисто теоретически - реально. Там же массив есть. Проходите его в фориче и все. Только если вы думаете, что руками это сделаете быстрее чем обычный ToString, то вы _ОЧЕНЬ_ сильно ошибаетесь.
1
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
28.04.2013, 22:27  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
Только если вы думаете, что руками это сделаете быстрее чем обычный ToString, то вы _ОЧЕНЬ_ сильно ошибаетесь.
Зато эту задачу можно распараллелить. К тому же можно будет оценить время, которое потребуется для преобразования... Разве не так?
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.04.2013, 23:09
Если вам так критична производительность, посмотрите в сторону нормальных библиотек для длинной арифметики, таких как GMP.
BigInteger же реализован очень неоптимально, как минимум потому, что он слишком обобщенный (а в длинной арифметике бесконечно много частных случаев - например, для взятия остатка по длинному модулю используется один алгоритм, а вот если модуль влазит в 32 бита, то используется уже другой, гораздо более быстрый алгоритм), а также написан не на native языке (в данном случае это критично).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2013, 23:09

Как реализовать метод ToString?
Здравствуйте, коллеги. Выручайте, кто может. Я написал программу по слудеющему заданию. Создать класс задающий данные для визитной...

Как переопределить метод toString
public Flat getBestSpace() { double bestSpace = 0; Flat flatBestSpace = null; for (int i = 0; i <...

Как вызывается метод toString
Здравствуйте. Подскажите пожалуйста откуда вызывается метод toString который формирует результирующую строку вывода. Во время создания...

Как реализовать в коде Equal и Tostring
]class Matrix { @Override public boolean equals(Object obj) { return false; } ...

Как сделать перегрузку метода ToString()
Помогите сделать перегрузку метода ToString(), еще чтобы были готовые 3 пациента при запуске, и после занесения данных они не записываются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru