Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Мобильные платформы > Другие мобильные платформы
Перезагрузить страницу Положение слов по 32 бита в double
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Antsu Antsu вне форума
Member
 
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.10.2006
По умолчанию Положение слов по 32 бита в double - 29.03.2007, 15:16

Я работаю с мобильным телефоном. Не могу понять, что работает неправильно: компилятор или телефон. Функции работают с double по-разному:
1) одни принимают дабл когда старшие биты находятся в первом слове (младшем),
2) а другие - когда старшие биты находятся во втором слове (старшем).
По идее в little-endian устройствах младшие биты находятся в младшей ячейке памяти (с меньшим адресом). Наверное и слова должны так распределяться.
Т.о. вариант 2 правильнее. Поправьте, пожалуйста, если я не прав.
Ответить с цитированием
  (#2 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 29.03.2007, 17:42

x86 работет по little-endian(младший байт по младшему адресу), а вот мобильные устройства, как правило, делают на ARM - и в таком случае там будет big-endian.
Что же касается форматов с плавающей точкой, то там вообще всё плохо
Ответить с цитированием
  (#3 (permalink)) Старый
Antsu Antsu вне форума
Member
 
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.10.2006
По умолчанию 29.03.2007, 17:48

Описание "endianness" (можно перейти на русский): http://en.wikipedia.org/wiki/Endianness.
ARM вообще могут работать и так итак. Но трудность в том что одни функции работают так а другие эдак. При чем меняется не весь порядок бит, а только слов по 32 бита.Скорее всего это или компилятор глючит или телефон.
Ответить с цитированием
  (#4 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 31.03.2007, 03:55

Уточни, какой телефон и какой компилятор.
Ответить с цитированием
  (#5 (permalink)) Старый
Antsu Antsu вне форума
Member
 
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.10.2006
По умолчанию 02.04.2007, 13:59

телефон u105, если имели дело с брю, то поймете. Компилятор - DNU DE (gcc 3.3.1). Сейчас хочу попробовать АРМ АДС 1.2, но надо еще мэйк файл написать.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 04.04.2007, 01:44

Немного проясняется...
Вообще, использовать типы с плавающей точкой на ARM - это путь на Тёмную сторону, ибо матсопроцессора там нету и все эти операции всё равно эмулируются компилятором. Отсюда, возможно, и ноги растут. Возможно, разные компиляторы по-разному эмулируют поддержку double...
Ответить с цитированием
  (#7 (permalink)) Старый
Antsu Antsu вне форума
Member
 
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.10.2006
По умолчанию 05.04.2007, 16:04

В приложении, скомпилированном с помощью ARM developer suite, переменные типа double стали обрабатываться нормально. А GNUDE менял местами слова в дабл.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Положение формы. AlekseyT .NET 1 25.10.2011 19:19
4 бита при переустановке windows rg81 Видеокарты 5 03.06.2011 17:41
Дан текст, для каждого из слов указать, сколько раз оно встречается среди слов текста wekze C++ Builder 8 19.02.2011 10:27
На ноутбуке Dell Inspiron 1501 не устанавливается цветность экрана 32 бита. oldpike Техническая поддержка 2 02.02.2009 20:54
Как закодировать 4 бита Exmap Мысли вслух 5 19.11.2008 22:35
про 64 бита, зачем они нужны? outta Софт и программы 3 17.09.2008 22:32
Драйвер для принтера (ОС Виста 64 бита) Olenka Драйвера 5 09.07.2008 19:57
Положение msgbox'a на экране Рик Visual Basic 6 01.06.2007 19:49
Положение Солнца на небе Rocky Программирование графики 9 17.05.2007 20:57
Без выходное положение с mssql Kelt MSSQL Server 7 13.01.2005 07:40
Написание DEAL-128 Как преобразовать char в 64 бита Anonymous Вопросы начинающих программистов 4 04.06.2004 17:22
Есть 4 бита надо одно двойное слово как запустить работу Anonymous Assembler 11 27.11.2002 17:26



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов