Системы счисления

13.06.15

Разработка - Математика и алгоритмы

Обработка для перевода из одной системы счисления в другую

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Системы счисления
.erf 7,84Kb ver:1.0
4
4 Скачать (1 SM) Купить за 1 850 руб.

Обработка на управляемых формах позволяет перевести число из системы счисления 1<N<37 в систему 1<M<37.

Алгоритм преобразования чисел можно найти здесь. Сначала число переводится из N-разрядной системы в десятичную, потом из десятичной в М-разрядную. 

Системы счисления

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3170    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7563    user1959478    51    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3116    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10906    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4366    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    3537    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9042    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Идальго 234 13.06.15 10:32 Сейчас в теме
Было уже вроде что-такое. Вот тут н-р вроде есть обе функции http://www.forum.mista.ru/topic.php?id=560858
2. ediks 337 15.06.15 11:43 Сейчас в теме
Размерность системы счЕсления М: 16 - как-то не совсем аккуратно.
3. eugeniezheludkov 45 16.06.15 03:23 Сейчас в теме
а я для кодирования актуальности ценников кодировал ШК(артикул с ценой) в base58 (для уменьшения размера ШК) в формате bitcoin с проверкой КС вот такими самопальными функциями, если в алгоритме base58 поменять строку символов на другую с другой длиной то будет любая система счисления декодер/энкодер преобразующий в массив байт и просто в число
Функция ПолучитьНибл(Ч)
	Возврат Сред("0123456789abcdef",1+Ч%16,1);
КонецФункции

Функция Byte2Hex(с)
	 Возврат ПолучитьНибл(с/16) + ПолучитьНибл(с);
КонецФункции

Функция Array2Hex(МассивБайт, Разделитель = "")
	Стр = "";
	Для Каждого	Байт из МассивБайт Цикл
		Стр = Стр + Byte2Hex(Байт) + Разделитель;
	КонецЦикла;	
	Возврат Стр;
КонецФункции
//bits
Функция УстановитьБит(ч, НомерБита) Экспорт
	Если Не СчитатьБит(ч, НомерБита) Тогда	
		ч = ч + pow(2, НомерБита);
	КонецЕсли;
	Возврат ч;	
КонецФункции
//устанавливаем бит в 0
Функция СброситьБит(ч, НомерБита) Экспорт
	если СчитатьБит(ч, НомерБита) Тогда	
		ч = ч - pow(2, НомерБита);
	КонецЕсли;
	Возврат ч;	
КонецФункции
//если бит 1 тогда истина иначе ложь	
Функция СчитатьБит(ч, НомерБита) экспорт
	Возврат Цел((ч%pow(2, НомерБита+1))/pow(2, НомерБита)) = 1;
КонецФункции
//Base58
Функция Base58Encode(знач х) Экспорт
	Если х = 0 Тогда Возврат "11"; КонецЕсли;
	Симв = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"­;//	bitcoin base58 encode 
	Стр = "";
	Base = СтрДлина(Симв);
	Пока х > 0 Цикл
		б = х % Base;
		Стр = Сред(Симв, б+1, 1) + Стр;
		х = Цел(х/Base);
	КонецЦикла;
	Возврат Стр;	
КонецФункции

функция Base58Decode(Стр) Экспорт
	Симв = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"­ ; //	bitcoin base58 encode 
	Base = СтрДлина(Симв);
	Стр = СокрЛП(Стр);
	д = СтрДлина(Стр);
	х = 0;
	Для н = 1 По д Цикл
		б = Найти(Симв, Сред(Стр, н, 1));
		х = (х * Base) + ?(б <= 0, 0, б - 1); //все спецсимволы или нераспознанные интерпретируем как 0
	КонецЦикла;
	Возврат х;	
КонецФункции

Функция Array2Base58(Array)
	РезультатБольшоеЧисло = 0;
	Для Каждого ЧислоМассива из Array Цикл
		РезультатБольшоеЧисло = РезультатБольшоеЧисло * 256 + ЧислоМассива%256;
	КонецЦикла;
	Возврат ?(Array[0] = 0 ,"1","")+Base58Encode(РезультатБольшоеЧисло);	
КонецФункции

Функция Base58Array(Число58)
	МассивБайт = Новый Массив();
	РезультатБольшоеЧисло = Base58Decode(Число58);
	Base = 256;
	Пока РезультатБольшоеЧисло > 0 Цикл
		Байт = РезультатБольшоеЧисло % Base;
		МассивБайт.Добавить(Байт);
		РезультатБольшоеЧисло = Цел(РезультатБольшоеЧисло/Base);
	КонецЦикла;
	Если Лев(Число58,1) = "1" Тогда МассивБайт.Добавить(0); КонецЕсли;
	Максимум = МассивБайт.ВГраница();
	Для Итератор = 0 По Максимум/2 Цикл
		Байт = МассивБайт[Максимум - Итератор];
		МассивБайт.Установить(Максимум - Итератор, МассивБайт[Итератор]);
		МассивБайт.Установить(Итератор, Байт);
	КонецЦикла;
	Возврат МассивБайт;
КонецФункции

Функция ПолучитьХэш256(МассивБайт)
Показать
Оставьте свое сообщение