Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Добрый день. Не подскажите как преобразовать байты в дробное число в си? Есть байты 0000000000805A40 - это дробное число 106.0. Как в языке си получить это число? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 06:39 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Это оно? https://ru.wikipedia.org/wiki/Число_двойной_%D 1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D0%B8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 09:49 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 10:21 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
m_Sla Код: plaintext 1. 2. 3. 4. Вот я намаялся такой код со Spark на x86 портировать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:17 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
t111кДобрый день. Не подскажите как преобразовать байты в дробное число в си? Есть байты 0000000000805A40 - это дробное число 106.0. Как в языке си получить это число? Думаю что самый надёжный вариант - преобразовывать в целое или строку десятичных цифр и делать кастинг в double. Вариант m_Sla возможно будет работать но нужно смотреть на лимиты по рязрядной сетке чтобы не затронуть те биты которые отвечают за знак и экспоненту. https://ru.wikipedia.org/wiki/Число_двойной_точности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:21 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Да нет не в с++, а чисто в си мне нужно char test[] = "0000000000805A40"; double temp = strtod(test,NULL); -это тоже не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:22 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
А можно если кто знает на данном конкретном примере преобразовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:24 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Обоснуй почему не подходит. Нам жаль своё время и не хочется тратить его на викторину или угадайку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:26 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Ну 106 таким образом не получается. Если смотреть под отладчиком Name : temp Details:805 Default:805 Decimal:805 Hex:0x325 Binary:1100100101 Octal:01445 Если переводить из шестнадцатиричного в деситичное число получиться - 8411712 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:29 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
t111кДа нет не в с++, а чисто в си мне нужно замени cout на printf() будет чисто си Для начала уточни как исходные данные представлены. Так t111к Код: plaintext 1. или так m_Sla Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:34 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Dima T, я-бы уточнил как он вообще получил данные что 0000000000805A40 равно 106.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:41 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
t111кДобрый день. Не подскажите как преобразовать байты в дробное число в си? Есть байты 0000000000805A40 - это дробное число 106.0. Как в языке си получить это число? Для этого нужно знать, в каком формате это число записано. В каком виде. Потому что шестнадцатиричное число -- это на самом деле не число, а представление в виде шестнадцатиричных цифр байт буфера, где лежит это число, поэтому нужно знать формат этого буфера. Если это просто целое число, то надо просто прочитать буфер памяти как число соотв. разрядности и знаковости, и преобразовать в double (или float). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:43 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
t111кНу 106 таким образом не получается. А оно в принципе может получится? Какой формат этих байтов? На IEEE 754 не похоже. В нем целые числа как целые выглядят, даже без первой 1 в двоичной кодировке 106 не получается. Из того что в голову пришло: 106dec = 1101010bin = 6Ahex = D4hex / 2 = 1A8hex / 4 = 350hex / 8 106dec = 101010bin (нормализованное); 101010bin = 2Ahex = 54hex / 2 = A8hex / 4 = 150hex / 8 Ничего такого в исходных данных не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:50 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
И это не BCD-арифметика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:53 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
mcureenabНа IEEE 754 не похоже.Вполне похоже, только порядок байтов обратный. http://www.binaryconvert.com/result_double.html?decimal=049048054 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 11:58 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Формат данных вот такой : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Чтобы посмотреть отображение числа 106 в байтах, нашли такой сайт: http://www.binaryconvert.com/result_double.html?decimal=049048054 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 12:10 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Тогда байты перевернуть и сделать кастинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 12:20 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
t111кФормат данных вот такой : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Чтобы посмотреть отображение числа 106 в байтах, нашли такой сайт: http://www.binaryconvert.com/result_double.html?decimal=049048054 Всё-таки это BCD, только по основанию 256... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 12:26 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
Вроде double *d = (double *) Heig; выходит 106, а как преобразовать double *d в char, чтобы потом соединить её посредством strcat с другой строкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 12:42 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
MasterZivВсё-таки это BCD, только по основанию 256... Обычное число двойной точности только в little endian записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 12:48 |
|
||
|
Преобразование hex в Double в си
|
|||
|---|---|---|---|
|
#18+
t111кВроде double *d = (double *) Heig; выходит 106, а как преобразовать double *d в char, чтобы потом соединить её посредством strcat с другой строкой? Код: plaintext 1. 2. 3. так подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2015, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39079848&tid=2018793]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 30ms |
| total: | 153ms |

| 0 / 0 |
