[an error occurred while processing this directive]
Да проблема-то уже решена... А в С (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено SM 22 июля 2003 г. 23:26
В ответ на: А что в языке С есть что-то подобное кроме >> или << ? отправлено Elek 22 июля 2003 г. 23:18

<< и >> работают по-разному для signed и unsigned переменных. Для первых - сдвиг арифметический, для вторых - логический.

А тут я сделал

Function SgnAdj(var ii : LongInt):Longint;
begin
if (ii and 0x8000) <> 0 then Result := ii or LongInt($FFFF0000) else Result := ii;
end;

ЭТО, засунутое в каждое выражение с shr'ом ситуацию спасло. Так как все значения 16-битные, а LongInt - 32-х. А shr'ов этих десятками в программе и по нескольку штук в выражении. Но это-же неэффективно по быстродействию. По-этому хочу ХОТЯ БЫ объявить эту функцию inline. Ан нет - тоже хрен. И как тут не возмущаться?

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

Ответы



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

E-mail: info@telesys.ru