Неявные преобразования в выражениях

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Неявные преобразования в выражениях

Сообщение dedm0zaj » 21.02.2014 15:54:02

Прошу разъяснить пару вещей.

Допустим у нас есть код

Код: Выделить всё
var
  a, b :integer;
  s :single;
begin
  a := 10;
  b := 3;
  s := a/b;
end.


Как я понял, выражение a/b преобразуется в Extended, а потом ещё раз в Single для s. Правильно ли я понял?

И например
Код: Выделить всё
var
  a, b :integer;
begin
  a := 10;
  b := round(a * 0.1);
end.


Правильно ли я понимаю, что a * 0.1 преобразуется в Extended?

Если всё так, то можно ли как нить уменьшить точность таких вычислений? Ведь, например, для Single нам вовсе не требуется считать Extended'ом.
dedm0zaj
постоялец
 
Сообщения: 108
Зарегистрирован: 05.10.2012 19:55:20

Re: Неявные преобразования в выражениях

Сообщение hinst » 21.02.2014 20:14:30

Код: Выделить всё
s := Single(a) / b

ну я думаю понятно
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Неявные преобразования в выражениях

Сообщение Sharfik » 22.02.2014 00:43:19

dedm0zaj писал(а):Если всё так, то можно ли как нить уменьшить точность таких вычислений? Ведь, например, для Single нам вовсе не требуется считать Extended'ом.

Купи книжку по Ассемблеру, если хорошую купишь там в начале будет теория работы процессора и регистров.
Какая тебе разница какая точность, когда у тебя во всех случаях будет Integer. Оптимизация расчета с точками не твоя забота, а процессора.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: Неявные преобразования в выражениях

Сообщение Дож » 23.02.2014 11:48:58

Sharfik писал(а):
dedm0zaj писал(а):Если всё так, то можно ли как нить уменьшить точность таких вычислений? Ведь, например, для Single нам вовсе не требуется считать Extended'ом.

Купи книжку по Ассемблеру, если хорошую купишь там в начале будет теория работы процессора и регистров.
Какая тебе разница какая точность, когда у тебя во всех случаях будет Integer. Оптимизация расчета с точками не твоя забота, а процессора.


Вы, наверно, хотели сказать: «Купи книжки по всем Ассемблерам»? :)
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Рейтинг@Mail.ru