Сообщение от
Валенок
Код:
for i := 0 to 15 do
if (x and shl(word#1,i)) > 0 then //i-ый бит в x поднят
...
end_if
end_for
А что в данном случае x?
Мне нужно в цикле обращаться к любому биту переменной.
Пробую записать сначала все биты в массив, но данный код у меня не работает:
Код:
FOR i := 0 TO 15 DO
IF (a AND SHL(PG1_2,i)) > 0 THEN
Ar[i]:=WORD_TO_BOOL(a);
END_IF
END_FOR
a всегда 0, даже если iый бит 1.
В общем сейчас приходится делать так:
Код:
Ar[0]:=PG1.0;
Ar[1]:=PG1.1;
Ar[2]:=PG1.2;
Ar[3]:=PG1.3;
Ar[4]:=PG1.4;
Ar[5]:=PG1.5;
Ar[6]:=PG1.6;
Ar[7]:=PG1.7;
Ar[8]:=PG1.8;
Ar[9]:=PG1.9;
Ar[10]:=PG1.10;
Ar[11]:=PG1.11;
Ar[12]:=PG1.12;
Ar[13]:=PG1.13;
Ar[14]:=PG1.14;
Ar[15]:=PG1.15;
работа с массивом
PG1.0:=Ar[0];
PG1.1:=Ar[1];
PG1.2:=Ar[2];
PG1.3:=Ar[3];
PG1.4:=Ar[4];
PG1.5:=Ar[5];
PG1.6:=Ar[6];
PG1.7:=Ar[7];
PG1.8:=Ar[8];
PG1.9:=Ar[9];
PG1.10:=Ar[10];
PG1.11:=Ar[11];
PG1.12:=Ar[12];
PG1.13:=Ar[13];
PG1.14:=Ar[14];
PG1.15:=Ar[15];
Вопрос - можно ли также работать с битами переменной как с массивом (обращаться в цикле к iму элементу). И можно ли присвоить биты word массиву и наоборот другими методами?