Навеяно
симАвтор: zbanned
Дата: 03.07.08
.
Кто занимался вопросами:
Какие из перечисленных типов поддерживаются на аппаратном уровне процессором машины? decimal вроде не поддерживается? Т.е. это программная реализация и операции с этим типом значительно медленнее, чем с float. А double поддерживается на аппаратном или программная реализация?
Как я понимаю, float реализовывать программно смысла нет, т.к. у процессора есть операции для чисел с плавающей запятой такой точности.
Если так, то почему точность float только 7 знаков (8 == 8.99999976158142)? Должно ж быть 8?
ЗЫ
Все вышесказанное мои предположения, этим вопросом не занимался.
Здравствуйте, 0K, Вы писали:
0K>Навеяно симАвтор: zbanned
Дата: 03.07.08
.
0K>Кто занимался вопросами:
0K>Какие из перечисленных типов поддерживаются на аппаратном уровне процессором машины? decimal вроде не поддерживается? Т.е. это программная реализация и операции с этим типом значительно медленнее, чем с float. А double поддерживается на аппаратном или программная реализация?
Все поддерживаются. Просто разные методы вызывают ранзные инструкции процессора для обработки.
0K>Как я понимаю, float реализовывать программно смысла нет, т.к. у процессора есть операции для чисел с плавающей запятой такой точности.
0K>Если так, то почему точность float только 7 знаков (8 == 8.99999976158142)? Должно ж быть 8?
Может имелось ввиду 9 == 8.99999976158142 ?
Здравствуйте, 0K, Вы писали:
0K>Какие из перечисленных типов поддерживаются на аппаратном уровне процессором машины?
80-битный формат. В С++ именуется также long double, хотя MSVC такое не поддерживает и считает его просто double. Все операции внутри процессора производятся в этом формате. Во внешний мир передают в требуемом виде.
0K>Если так, то почему точность float только 7 знаков (8 == 8.99999976158142)? Должно ж быть 8?
6-7. Точнее, 23 (двоичных). double — 52 бита. Родной 80-битный — 64 бита.
В общем, почитай про стандарт IEEE 754 и 854. Например, здесь
http://en.wikipedia.org/wiki/IEEE_754
http://subscribe.ru/archive/comp.soft.prog.9899/200404/28151235.html