6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
||||||
1 | ||||||
Преобразовать указатель в float03.12.2013, 11:00. Показов 5424. Ответов 27
Метки нет (Все метки)
допустим есть такая структура
0
|
03.12.2013, 11:00 | |
Ответы с готовыми решениями:
27
Почему указатель на указатель объявляется как float **A; Преобразовать указатель одного типа в указатель другого. double указатель и float матрица Преобразовать string в float |
Заблокирован
|
|
03.12.2013, 11:06 | 2 |
он выводит 4-х байтовый указатель в десятичном виде (изначально был в 16-чном)
а вот у флоата структура совершенно другая, у него ж какие - то байты отвечают за экспоненту, какие - то за знак и тд лень пробовать у себя, просто попробуй так: Label2->Caption = (float)(int)*pt;
1
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
03.12.2013, 11:15 [ТС] | 3 |
не выводит то что нужно ... (выводит 0)
ну да... непонятен мне float вообще... вроде 4 байта занимает... а значения может принимать такие же как и int где тогда хранятся значения после точки..
0
|
03.12.2013, 11:22 | 4 |
Здесь pt указатель, *pt это то, на что он указывает - целое число 34. Но компилятор считает, что это указатель на wchar_t. Написав (int) мы даем знать компилятору, что на самом деле там лежит целое число.
Для плавающего надо сначала сдвинуть указатель, чтобы он указывал на область памяти после целого числа, где находится float b. Сдвинуть нужно на четыре байта. Поскольку это указатель на wchar_t, а wchar_t занимает два байта, нужно сдвинуть указатель на 2 единицы. То есть будет (float)*(pt+2).
1
|
Заблокирован
|
|
03.12.2013, 11:23 | 5 |
Ознакомься с IEEE 754-2008 по ссылке http://ru.wikipedia.org/wiki/IEEE_754-2008
А конкретно float - это одинарная точность - вот http://ru.wikipedia.org/wiki/%... 1%82%D0%B8
1
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
||||||
03.12.2013, 11:27 [ТС] | 6 | |||||
0
|
03.12.2013, 11:31 | 9 | |||||
Виноват, был не прав. Не заметил, что в третьей строчке вы указатель уже сдвинули. По моему так должно быть.
0
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
03.12.2013, 11:33 [ТС] | 10 |
поля структуры в памяти идут друг за другом... как и в массиве элементы массива
не надо путать меня и остальных пожалуйста
0
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
03.12.2013, 11:36 [ТС] | 14 |
0
|
03.12.2013, 11:40 | 15 |
Если у ТС с-builder, то нужно еще IntToStr применять. Но ТС утверждает, что у него и без этого целое выводится правильно. Так что не знаю, может он где-то операцию = перегрузил...
Добавлено через 4 минуты Вы лучше скажите, у вас Builder или что? Сишный программист обитаемый на этом форуме понятия не имеет о том, как выводить на Label2->Caption. Целые числа разве у вас правильно выводит?
0
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
03.12.2013, 11:45 [ТС] | 16 |
прошу прощения не заметил, правильно) спасибо
Добавлено через 2 минуты rad studio 10 да всё правильно выводит... только проблема была с float
0
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
03.12.2013, 11:50 [ТС] | 18 |
просто мне надо вывести очень очень много структур... с очень очень большим кол-вом полей и ещё + структуры в структуре, и тд...
мне проще будет создать массив указателей на начало каждой структуры(что я и сделал циклом) и вывести таким образом все
0
|
03.12.2013, 12:03 | 19 | ||||||||||
Возможно, у вас операция = с float не перегружена. Попробуйте использовать тип double.
Добавлено через 3 минуты Не используйте ваш кастинг в рабочей программе. В такой программе потом невозможно будет разобраться. Пишите проще. Добавлено через 4 минуты Указатель должен быть на структуру, а не на элемент структуры.
Я бы даже так написал последнюю строчку
0
|
03.12.2013, 12:04 | 20 |
Можно, с осторожностью: offsetof
0
|
03.12.2013, 12:04 | |
03.12.2013, 12:04 | |
Помогаю со студенческими работами здесь
20
Преобразовать из float в string Преобразовать строку в float Ошибка. Невозможно преобразовать CString в float опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |