Перевод из строки в число и обратно
Запись от The trick размещена 11.03.2014 в 04:36
Показов 4229
Комментарии 2
Метки vb
VB-шные функции для перевода и проверки чисел в строки (и обратно) очень неудобные, в плане того что туда можно много чего написать, и они их "съедят". Можно написать числа в шестнадцатеричной системе или в скобках, в экспоненциальной записи и т.п. С одной стороны это хорошо, но с другой может быть проблемой. Я написал 2 функции которые переводят десятичные целые числа неограниченной размерности из одного представления в другое. Может быть полезно например для отображения (установки) LARGE_INTEGER или любых других больших (сверхбольших) чисел. Может как-нибудь сделаю модуль для арифметических действий с такими числами.
| |||||
Метки vb
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
-
А я давно сделал арифметику на строках (на байтовых массивах, вероятно, было бы эффективнее).
Загляните сюда (5-я сверху). Правда, там исходников нет. Исходники я где-то на форуме выкладывал.Запись от Catstail размещена 11.03.2014 в 19:40
-
Я видел в этой теме, Вы выкладывали эту библиотеку - впечатляет. Там же я выкладывал алгоритм деления любых чисел, основанной на сдвигах и сложениях. Я реализовывал такую арифметику только для 32 разрядных переменных на микроконтроллере AVR (там нет аппаратного деления и умножения (в Tiny моделях)).
Сообщение от Catstail
Реализовывать на байтовых массивах - это естественно, т.к. это быстро и для хранения числа не тратится много памяти (как в строках по 2 байта на десятичный разряд), также легко преобразовывать в типы данных неподдерживаемые VB6 - со строками это непросто сделать. Этот пример я изначально писал для перевода из строки в LARGE_INTEGER (навеяно http://bbs.vbstreets.ru/viewtopic.php?f=1&t=43910), но потом расширил до бесконечности. В этом примере в принципе уже реализовано сложение двух больших чисел и деление большого числа на 10 (расширяется до Long'а).Запись от The trick размещена 11.03.2014 в 20:26


