> -- Galkov писал(а):
> Просто же все: 0-вой бит надо про-XOR-ить с первым:   Не, ну я пробовал конечно же... Просто потом ухи в трубочку сворачиваются. Может не понимаю чего

У меня лично получился вот такой вот ужас:
## Код:
```
PROCEDURE JustDoIt (i:LONGINT) : LONGINT;
VAR
    b0, b1 : BOOLEAN;
    j : SET;
BEGIN
    j := SYSTEM.VAL(SET, i);
    b0 := 0 IN j;
    b1 := 1 IN j;
    IF (b0 & ~b1) OR (~b0 & b1) THEN 
        j:=j+{0} 
    ELSE 
        j:=j-{0}; 
    END;
    RETURN SYSTEM.VAL(LONGINT, j);
END JustDoIt;
```


Но в плане оберона у меня конечно руки-крюки. Наверняка как-то элегантней можно.