Chu*_*dad 15 c++ floating-point
可能重复:
为什么C没有无符号浮点数?
问题可能是非常基本的,可能很早就回答了,但我想了解为什么C++没有无符号浮点类型,即使浮点文字可以是有符号或无符号的.
$ 3.9.1/8-"有三种浮点类型:float,double和long double."
AnT*_*AnT 28
无符号整数类型有两个重要的属性,它们将它们与有符号整数类型区分开来:"移位"范围(没有负的子范围,但是宽的子范围是宽的两倍)和模运算.对于整数类型,这些属性非常重要,足以证明无符号类型的存在.
对于浮动类型,这些属性都不能立即应用.对于浮点类型,主要问题不在于它们的范围(对于许多目的,它可以被认为是几乎无限的),而是精确的.模运算自然不适用于非整数类型.出于这个原因,引入无符号浮点类型没有多大意义,即在浮点表示中只触发一位的作用没有多大意义.
还应该注意,上述推理应该可以用作在流行的硬件和相应的硬件衍生标准中引入无符号整数类型(并且不引入无符号浮点类型)的基本原理.我们在C和C++中拥有的内容基本上是从硬件功能和这些标准中继承而来的.
当然,从概念角度来看,在语言中使用无符号浮点类型是合乎逻辑的,只是为了保持一致性.但是,唉,他们不在那里.
| 归档时间: |
|
| 查看次数: |
24439 次 |
| 最近记录: |