20 lines
485 B
Ada
20 lines
485 B
Ada
-- { dg-do compile }
|
|
-- { dg-options "-O2" }
|
|
|
|
function slice1 (Offset : Integer) return String is
|
|
|
|
Convert : constant String := "0123456789abcdef";
|
|
Buffer : String (1 .. 32);
|
|
Pos : Natural := Buffer'Last;
|
|
Value : Long_Long_Integer := Long_Long_Integer (Offset);
|
|
|
|
begin
|
|
while Value > 0 loop
|
|
Buffer (Pos) := Convert (Integer (Value mod 16));
|
|
Pos := Pos - 1;
|
|
Value := Value / 16;
|
|
end loop;
|
|
|
|
return Buffer (Pos + 1 .. Buffer'Last);
|
|
end;
|