LINUX.ORG.RU

битовый сдвиг

 


0

1

Извиняюсь за банальный вопрос, но нигде не могу найти «как осуществляется битовые сдвиги в Аде?

procedure PPPP is
hCore : Integer := 16#001#;
begin
...
hsCore := (hCore<<1);
end PPPP;

выдает ошибку

file.adb:22:41: missing ")"
убирал/добавлял скобки не помогло.

★★★★★

умножить/поделить на степень двойки, не?

AF ★★★
()

Гугл говорит, что это Shift_Left(hCore, 1)

dizza ★★★★★
()

Только лучше использовать модульные типы, если нужны битовые операции. Иначе будешь Constraint_Error получать.

procedure PPPP is
   type hCore_Type is mod 2 ** 32;
   hCore : hCore_Type := 16#001#;
begin
   hCore := hCore / 2;
end PPPP;
ksicom
()

сдвиг влево это умножение на 2

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от I-Love-Microsoft

нравится мне ее синтаксис, привычен после паскаля.

splinter ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.