Каталог решений - Перевод из шестнадцатеричного числа в десятичное

Перевод из шестнадцатеричного числа в десятичное

Перевод из шестнадцатеричного числа в десятичное

В наличии

Необходимо было сопряжение фискального регистратора(ФР) Штрих..  — установка времени компьютера на фискальном регистраторе — пришлось общаться с ФР с помощью команд в шестнадцатеричном формате. Перевод из десятичного формата в шестнадцатеричный нашел — http://infostart.ru/public/83824/, а обратно нет, пришлось написать. И вот что получилось

Категория:

Описание

Функция ПеревестиЧислоИзШестнадцатиричногоВДесятичное(СтрокаХекс) Экспорт

                мСтрокаХекс = СокрЛП(СтрокаХекс);

                СтрДлинаХексЧисла = СтрДлина(мСтрокаХекс);

                ДесятичноеЧисло = 0;

                Для Сч = 0 По СтрДлинаХексЧисла-1 Цикл

                               Множитель = Pow(16,Сч);

                               //Сообщить(«Множитель:»+Строка(Множитель));

                               НехЧисло1Байт = Сред(мСтрокаХекс,СтрДлинаХексЧисла-Сч,СтрДлинаХексЧисла-Сч);

                               //Сообщить(«ХексЧисло1Байт:» + НехЧисло1Байт);

                               Если НехЧисло1Байт = «A» Тогда

                                               ДесятичноеЧисло = ДесятичноеЧисло + 10*Множитель;

                               ИначеЕсли НехЧисло1Байт = «B» Тогда

                                               ДесятичноеЧисло = ДесятичноеЧисло + 11*Множитель;

                               ИначеЕсли НехЧисло1Байт = «C» Тогда

                                               ДесятичноеЧисло = ДесятичноеЧисло + 12*Множитель;

                               ИначеЕсли НехЧисло1Байт = «D» Тогда

                                               ДесятичноеЧисло = ДесятичноеЧисло + 13*Множитель;

                               ИначеЕсли НехЧисло1Байт = «E» Тогда

                                               ДесятичноеЧисло = ДесятичноеЧисло + 14*Множитель;

                                              

                               ИначеЕсли НехЧисло1Байт = «F» Тогда

                                               ДесятичноеЧисло = ДесятичноеЧисло + 15*Множитель;

                               Иначе

                                               Попытка

                                                               ДесятичноеЧисло = ДесятичноеЧисло + Число(НехЧисло1Байт)*Множитель;

                                               Исключение;

                                                               //не число от 0 до 9

                                               КонецПопытки

                               КонецЕсли;

                КонецЦикла;

                Возврат ДесятичноеЧисло;

 КонецФункции

 

has been added to your cart:
Оформление заказа