mit einem set (also einer Menge/Bitfeld) sollte es gehen:
Delphi-Quellcode:
type TAlleBitsEinenIntegers = set of 0..32;
PAlleBitsEinesIntegers = ^TAlleBitsEinenIntegers;
var
AlleBitsEinenIntegers: TAlleBitsEinenIntegers;
EinInteger, i: Integer;
Output: String[32];
begin
EinInteger := 4294967295;
AlleBitsEinenIntegers := PAlleBitsEinesIntegers(@EinInteger)^;
FillChar(Output, 32, '0');
for i := 32 downto 1 do
if pred(i) in AlleBitsEinenIntegers then
Output[32 - i] := '1';
Writeln(Output);
Sleep(2000);
end.
Ist vielelicht etwas umständlich, aber ich arbiete eigentlich nie mit Pointern oder primitiven Typen.
Output
1111111111111111111111111111111
Edit: Habe aus der vertikalen Darstellung ein Füllen eines String[32] gemacht.