Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 4.11 Функция перевода шестнадцатеричного hex кода в дробное число double

Страниц (4): « 1 2 [3] 4 »
 

21. Kibor - 12 Декабря, 2017 - 13:28:09 - перейти к сообщению
Вообще то в памяти числа так и записаны. Справа налево.
И ничего переворачивать не надо при чтение с памяти данных числовых. Что это за участок памяти и является ли это числом или частью просто чего то я не знаю.
Проверьте точный адрес реального числа.
22. AdryV - 12 Декабря, 2017 - 13:34:14 - перейти к сообщению
все уже работает надо было перевернуть масив
23. Kibor - 12 Декабря, 2017 - 14:41:01 - перейти к сообщению
В памяти изначально числа записаны справа налево. Переворачивать при чтение числовых значений не надо.
24. Kibor - 08 Марта, 2019 - 02:31:40 - перейти к сообщению
Обновил функцию. Исправил переворот байт.
Если в CE байты идут к примеру

FF FF 7F 7F
что соответствует самому большому значению float
340282346638528860000000000000000000000.000000

То в Кибор это будет записано так

char p[4]={255, 255, 127, 127}
double a=codhexd(#p[0]);
messagebox (a);//Выведет 340282346638528860000000000000000000000.000000

При указание большего числа будет ошибка #QNANO
25. AdryV - 08 Марта, 2019 - 05:15:33 - перейти к сообщению
Ура!
работает супер спасибПодмигивание
26. SOLNCE - 19 Апреля, 2021 - 17:36:46 - перейти к сообщению
сам врятли смогу, есть у кого код перевода float to int? где инт был бы равен только целому значению флоат
27. Zireael - 19 Апреля, 2021 - 17:45:03 - перейти к сообщению
 Цитата:
код перевода float to int? где инт был бы равен только целому значению флоат

Присвоить значение переменной int.
CODE:
double x = 123.07;
int y = x;
messagebox(y);
28. SOLNCE - 20 Апреля, 2021 - 06:12:57 - перейти к сообщению
спасибо
29. a300 - 14 Февраля, 2024 - 00:13:21 - перейти к сообщению
Здравствуйте.

Как заставить в int писать правильное значение?
Просто присвоить значение переменной int не помогает.
CODE:
double a = 9.999999;
double a1 = 2.79;

int b = 1000000000;

double c = a * b;
double c1 = a1 * b;
int d = c;
int d1 = c1;
messagebox (format(c)+formatic(13)+formatic(10)+format(d)); // выводит не то что должен
messagebox (format(c1)+formatic(13)+formatic(10)+format(d1)); // выводит вообще отрицательное число
30. Ilya001 - 14 Февраля, 2024 - 00:22:38 - перейти к сообщению
 a300 пишет:
Здравствуйте.

Как заставить в int писать правильное значение?
Просто присвоить значение переменной int не помогает.
CODE:
double a = 9.999999;
double a1 = 2.79;

int b = 1000000000;

double c = a * b;
double c1 = a1 * b;
int d = c;
int d1 = c1;
messagebox (format(c)+formatic(13)+formatic(10)+format(d)); // выводит не то что должен
messagebox (format(c1)+formatic(13)+formatic(10)+format(d1)); // выводит вообще отрицательное число

Целый тип int имеет размер 4 байта (32 бита). Минимальное значение -2 147 483 648, максимальное значение 2 147 483 647. Возможно у тебя значение в int не помещается

Powered by ExBB FM 1.0 Final