解決しました。 function TestBit(Stream: TStream; BitNum: Integer): Integer; var B: Byte; OldPosition: Int64; begin OldPosition := Stream.Position; try if (BitNum < 0) or (BitNum > Stream.Size*8) then raise Exception.Create('error');
Stream.Position := BitNum div 8;
Stream.ReadBuffer(B, SizeOf(B));
Result := (B shr (BitNum mod 8)) and 1; finally Stream.Position := OldPosition; end; end; でいくことにしました。アドバイスありがとうございました。