|
|
|
Guinness |
|
|||
Опытный Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
||||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
Да, я прочёл её уже не первый раз, уже доходил до этой ссылки, в случае с unit выдаёт ошибку, в случае с double '4046800000000000' хотел это сделать перед итерацией, но увы, также выдёт ошибку. Добавлено через 6 минут и 14 секунд Вы указали, что double нужно заменить на hex2num, но поясните пожалуйста, зачем? ведь вычисление до double уже было в hex2dec? Это сообщение отредактировал(а) stinker - 1.7.2013, 15:37 |
|||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
num2hex должен просто перевести число в шестнадцатеричное, т.е например 29 это 1D. матлаб же показывает что 29 это 4a191c2b54d4c50a.
я просто неправ или оно так и должно Добавлено @ 16:07 Огроное спасибо за помощь, но теперь я вообще запутался чего матлаб от меня хочет даже переводя числа, они всеравно в результате остаются с большими степенями изза магического числа. помогите пожалуйста с этим безумным кодом Это сообщение отредактировал(а) stinker - 1.7.2013, 16:08 |
|||
|
||||
Guinness |
|
||||
Опытный Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
Вы немного не так прочитали описание данной функции + пока не понимаете, что такое double. 1D - это представление 29 как целого числа. Добавлено @ 16:14
Ибо double большеват для этого преобразования. Это сообщение отредактировал(а) Guinness - 1.7.2013, 16:15 |
||||
|
|||||
stinker |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
Но ведь в данном случае мне и нужно сделать его представлением целого, так ведь? Добавлено через 2 минуты и 19 секунд
тогда при выполнении этого выдаёт ??? Input argument "ExpBits" is undefined. Error in ==> float at 54 DAStudio.error('Shared:numericType:customFloatSupportRemove', TotalBits, ExpBits ); Добавлено через 5 минут и 27 секунд может быть это изза старого матлаба? |
||||||
|
|||||||
Guinness |
|
|||
Опытный Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
Да, но double в памяти хранится как число, которое делится на 3 части: знак + экспонента + мантисса. Тип int хранится как обычное число в двоичном виде: знак + значение. И Вам в алгоритме от double нужно представление как он хранится в памяти. В алгоритме на c++ происходят следующие вещи: 1) &x - мы передаем адрес на ячейку памяти, в которой хранится число double(знак + экспонента + мантисса) 2) (uint32 *)&x - говорим, что указатель указывает на ячейку памяти простое целое беззнаковое число(знак + значение) 3) *( (uint32 *)&x ) - значение находящееся по данному адресу как число uint32. Т.е. мы берем представление числа double как оно хранится в памяти компьютера. |
|||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
судя по хелперу float может задавать только структуру значения, при этом конкретное значение не присвоить.
пример из тогоже хелпера
|
|||
|
||||
Guinness |
|
|||
Опытный Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
||||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
вместо double по идее нужен single, т.к по алгоритму идут числа с одинарной точностью?
|
|||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
по идее ведь float в маткаде это и есть double?
Добавлено через 12 минут и 39 секунд хотя нет, при single получается отрицательное число.. |
|||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
Помогите пожалуйста доделать программу, очень прошу)
пользовался вот этой литературой, но далеко не продвинулся. помогите пожалуйста) А то уже за вторую неделю мозг в кашу Это сообщение отредактировал(а) stinker - 1.7.2013, 18:24 |
|||
|
||||
Guinness |
|
|||
Опытный Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
Да, похоже нужно single использовать. С чем у Вас ещё проблемы остались?
|
|||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
на данный момент код выглядит так:
какие в коде сейчас ошибки и обьясните пожалуйста как их можно исправить очень прошу, просто давно с этим кодом бьюсь, вроде и исправляю а результат тотже. в ответе явно не обратный корень, отрицательное число в безумной степени явно не то( Добавлено через 1 минуту и 47 секунд а по сути от сингла мало что изменилось, результат даже значения не сменил |
|||
|
||||
Guinness |
|
|||
Опытный Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
x = single(i);
меняем на x = single( hex2num( dec2hex( i ) ) ); Это сообщение отредактировал(а) Guinness - 1.7.2013, 19:23 |
|||
|
||||
stinker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 1.7.2013 Репутация: нет Всего: нет |
в результате выходит значение "-Inf", минус бесконечность собсна Добавлено @ 19:33 ой, извините, не в ту программу код поставил) теперь понял что нужно было обращать i обратно в hex, потом в num, прям прояснило) Добавлено @ 19:34 огромное спасибо что помогли! так, если в результате у нас должен быть обратный квадратный корень, к примеру 29, то 1/sqrt(29)=0.185695338177052 а у нас по результатам кода выходит 1.3516559e-08 это нормально? или расчёты ошибочны? Это сообщение отредактировал(а) stinker - 1.7.2013, 19:35 |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Математические пакеты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |