![]() |
Перекодировка из шестнадцатеричной в десятеричную систему
Здравствуйте!
Стоит задача чтения потока с терминала через com-порт и преобразования (математическое) их! При чтении потоков с com-порта сигнал приходит в шестнадцатеричной системе. Мне не хочется писать свою перекодирующую функцию, поэтому хотел бы узнать, есть ли более простой способ перекодирования шестнадцатеричного числа в десятеричное. Структура посылки: 1 байт: знак "+" или "-" 2 - 9 байт: число 10 байт: символ "S" 11-18 байт: число 19-20 байт: № посылки Пример полученных посылок +00000000S00000000І± +00000000S00000000ІІ +00000000S00000000І3 +00000000S00000000Іґ +00000000S00000000І5 +00000000S00000000І6 +00000000S00000000І· +00000000S00000000Іё +00000000S00000000І9 +00000000S0000000030 +00000000S000000003± +00000000S000000003І +00000000S0000000033 +00000000S000000003ґ +00000000S0000000035 +00000000S0000000036 +00000000S000000003· +00000000S000000003ё +00000000S0000000039 +00000000S00000000ґ0 +00000000S00000000ґ± +00000000S00000000ґІ +00000000S00000000ґ3 +00000000S00000000ґґ +00000000S00000000ґ5 1.P.S. IntToHex() не сработал! 2.P.S. Извиняюсь за свою неграмотность в программирование на С\C++, поэтому прошу при ответе написать подключаемую библиотеку и функцию перекодировки! Спасибо! |
Цитата:
Цитата:
|
Цитата:
Спасибо, конечно! Но не срабатывает у меня "HEX" почему-то! Скинь исходники, где у тебя работает **ToHex() или HexTo***()! |
Alexey271, увы, давно ничего не кодил :(
Возможно, там нужно передать строку определённой длины? |
Цитата:
Я имел ввиду обычных 2 Edit и Button, где будет перекодировка из 16-ричной в 10-ричную! Сам не пойму в чем дело, то ли в типах данных, то ли в длине, как ты сказал! |
Вложений: 1
El Scorpio
Решил задачу в "лоб", как говориться! Есть идейки, как упростить или улучшить код?! Код:
//#################################// /* ПЕРЕВОД ИЗ 16 В 10 */ //#################################// IntToHex() - Работает HexToInt() - не определена (не работает) |
Время: 10:36. |
Время: 10:36.
© OSzone.net 2001-