[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=ВН=- 19 мая 2004 г. 15:41
В ответ на: А может кто-нибудь подскажет мне, что такое big endianess и little endianess и как их определить глядя в программу, дабы как положено запустить симулятор для TMS? отправлено 666 19 мая 2004 г. 14:37

Порядок расположения, точнее вес, более мелких единиц данных в более крупных. 8-ми разрядных в 16-ти разрядных, 16-ти в 32-х, 8-ми в 32-х и т.д.
На примере 16-ти разрядного (short). 2 байта занимает. Байты расположены по относительным адресам 0 (byte[0]),1 (byte[1]).
Для little byte[0] - младший, т.е. имеет вес 1, byte[1] - старший, вес 256. Т.е. short=byte[1]*256+byte[0].
Для big наоборот byte[1] - младший, т.е. имеет вес 1, byte[0] - старший, вес 256. Т.е. short=byte[0]*256+byte[1].
Аналогично для 32-х разрядов (int). 2 short занимает, расположенных по относительным адресам 0 (short[0]), 2(short[2]). В свою очередь short[0] из byte[0],byte[1], short[2] из byte[2],byte[3].
Для little - int=short[2]*65536+short[0]=(byte[3]*256+byte[2])*65536+byte[1]*256+byte[0].
Для big - int=short[0]*65536+short[2]=(byte[0]*256+byte[1])*65536+byte[2]*256+byte[3].
Все сказанное не означает, что 1, например, для big должна записываться в программе как 0x8000 (16 разрядов). Она будет точно так же записываться, т.е. 1.
Т.е. little, big - это по другому порядок, в котором данные хранятся в памяти.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru