123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- { from gpc tests, original name pack4.pas }
- {$ifdef fpc}
- {$bitpacking on}
- {$endif fpc}
- Program PackUnpack;
- Var
- foo: array [ 1..7 ] of Boolean;
- bar: packed array [ 1..3 ] of Boolean;
- i: Integer;
- temp: Boolean;
- begin
- for i:= 1 to 3 do
- bar [ i ]:= true;
- for i:= 1 to 7 do
- foo [ i ]:= false;
- foo [ 4 ]:= true;
- foo [ 5 ]:= true;
- pack ( foo, 3, bar );
- if bar [ 3 ] and bar [ 2 ] and not bar [ 1 ] then
- begin
- for i:= 1 to 3 do
- begin
- temp:= not bar [ i ];
- bar [ i ]:= temp;
- end { for };
- unpack ( bar, foo, 5 );
- if not foo [ 1 ] and not foo [ 2 ] and not foo [ 3 ] and foo [ 4 ]
- and foo [ 5 ] and not foo [ 6 ] and not foo [ 7 ] then
- writeln ( 'OK' )
- else
- begin
- write ( 'failed: foo =' );
- for i:= 1 to 7 do
- write ( ' ', foo [ i ] );
- writeln;
- halt(1);
- end { else };
- end { if }
- else
- begin
- write ( 'failed: bar =' );
- for i:= 1 to 3 do
- write ( ' ', bar [ i ] );
- writeln;
- halt(1);
- end { else };
- end.
|