У программиста спрашивают:
- Hе помнишь, сколько будет два в четвеpтой?
- (без запинки) Шестнадцать.
- А шестнадцать в четвеpтой?
- (без запинки) Шестьдесят пять тысяч пятьсот тpидцать шесть.
- Вот голова, ну ты даешь!!! Hу, а тpи в четвеpтой?
- (после паузы) Hе помню точно. Дpобное число получается.
Чтобы возвести 2 в нужную степень можно создать цикл:
a := 1;
for i := 1 to 20 do
a := a * 2;
Можно воспользоваться функциями Power, IntPower или LdExp из модуля Math, но есть способ быстрее. Можно сдвигать двоичные порядки на N порядков. Это приводит к умножению или делению числа на 2 в степени N. При этом обязательно работать с целочисленным типом.
procedure TForm1.Button1Click(Sender: TObject);
var
Res, Exponent: integer;
begin
Exponent := 10;
Res := 10 shl Exponent;
Form1.Caption := IntToStr(Res) + #32;
Res := Res shr Exponent;
Form1.Caption := Form1.Caption + IntToStr(Res);
end;
В статье описывается способ быстрого возвести число 2 в необходимую степень с помощью сдвига двоичных порядков, а также пример на языке Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS