Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

перевод из 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)


Наверх

Титульная страница Поиск, карта сайта Написать письмо