![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
перевод из 16ой в 10ую
fiascko © (2010-10-26 16:07:00)Ребята, прошу помощи. Необходимо перевести числа из 16ой в 10 сс.
Взялся переводить и вот некоторые проблемы:
1) как переводить отрицательные числа (из 10ой в 16ую)? Калькулятор число FFD6F78C перевел как -2689140. Я думал сначала, что если первые 2 цифры FF, то число отрицательное, но это оказалось неверно.
2) у меня есть таблица с несколькими числами в десятичной и 16ой системе соответственно. Так там число F143F62C4113F42F перевели как 2.4921113696е+005.
Прошу помочь. Очень нужно. Заранее благодарен.
fiascko (2010-10-26 20:38:00) [1]благодарствую
Германн (2010-10-26 20:14:00) [2]
> а как реализовать перевод вещественных чисел в Делфи
А перевод и не нужен. Раз речь о протоколе приема/передачи достаточно загрузить при приеме 8 байт в память по адресу переменной типа Double, а при передаче передать 8 байт из памяти начиная с адреса этой переменной.
fiascko (2010-10-26 18:57:00) [3]а как реализовать перевод вещественных чисел в Делфи?
fiascko (2010-10-26 18:56:00) [4]о, спасибо
Германн (2010-10-26 18:40:00) [5]
> все простые числа нормально перевел без затруднений
Так то были целые числа.
http://uchebnik1.narod.ru/chislo.html
http://kuzelenkov.narod.ru/mati/book/inform/inform5.html
fiascko (2010-10-26 18:03:00) [6]все простые числа нормально перевел без затруднений
Германн (2010-10-26 18:02:00) [7]
> эта табличка из примера протокола обмена данными с gps-приемника.
>
>
Значит это не "строковое", а "машинное" представление числа. И никакой калькулятор тебе не поможет.
fiascko (2010-10-26 17:57:00) [8]эта табличка из примера протокола обмена данными с gps-приемника.
Anatoly Podgoretsky (2010-10-26 17:56:00) [9]
> fiascko © (26.10.10 17:23) [4]
Ты нас спрашиваешь про свои числа :-)
Германн (2010-10-26 17:54:00) [10]Тогда ответь что у тебя за табличка
> у меня есть таблица с несколькими числами в десятичной и
> 16ой системе соответственно.
Откуда ты ее взял?
fiascko (2010-10-26 17:50:00) [11]
> А ты уверен что F143F62C4113F42F это "строковое представление"
> числа?
в смысле строковое?
Palladin (2010-10-26 17:41:00) [12]за метлой
Германн (2010-10-26 17:39:00) [13]
> А как получили из F143F62C4113F42F -->2.4921113696е+005
А ты уверен что F143F62C4113F42F это "строковое представление" числа?
fiascko (2010-10-26 17:36:00) [14]не понял немного
Palladin (2010-10-26 17:26:00) [15]http://do.sibsutis.ru/bakalavr/sem1/course77/lec10_3.htm
fiascko (2010-10-26 17:23:00) [16]это все понятно. А как получили из F143F62C4113F42F -->2.4921113696е+005. Это же дробное число, как я понимаю. Делфи не переводит, калькулятор дает неверное значение.
Anatoly Podgoretsky (2010-10-26 16:36:00) [17]Это для Intger для Int64 вместо 8 16
Anatoly Podgoretsky (2010-10-26 16:36:00) [18]> fiascko (26.10.2010 16:07:00) [0]
IntToStr(StrToInt('$'+S, 8))
И. Павел (2010-10-26 16:12:00) [19]> [0] fiascko © (26.10.10 16:07)
Это дополнительный код. Он упрощает оперирование отрицательными числами в машинах.
http://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4_(%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0)