首页 > 技术文章 > 编程中无穷的表示_转

embedded-linux 2016-11-25 16:22 原文

转自:编程中无穷的表示

int不能表达真正的无穷大或者无穷小。
在C语言中,int为整型类型,根据不同平台不同,有16位(2字节)和32位(4字节)两种,其中32位int为目前主流。

无论哪种int类型都有其表达范围,其中
16位int能表示的范围为-32768~+32767
32位int能表示的范围为-2147483648~+2147483647
从这个可以看出,int是无法表达真正的无穷大和无穷小的。
但数学中的无穷大和无穷小是指一种概念上存在实际上永远无法达到的数值,这样在编程中,就可以根据程序要求使用一些值来替代无穷大和无穷小的概念。

一般有如下两种情况:

1 程序中对处理的数据规模有限制,比如程序中输入的数值只在0~100之间,那么可以设定无穷大为101,而无穷小为-1。因为它们也是在使用中无法达到的值。

2 程序中对数据规模没有明确的规定。但是既然应用的int类型,就必须是int类型可以容纳的,否则出现溢出就可能导致错误。 这样,可以用int所能表示的最大值和最小值用做无穷大和无穷小。

比如在32位情况下,无穷小可以是-2147483648,无穷大是2147483647。

如此长的一段数据是很难记忆的,由计算机对整型数据的存储原理可以得知,这两个数值的二进制值分别为0x80000000和0x7FFFFFFF。

类似的在16位下,无穷大为0x7FFF,无穷小为0x8000。

 

 

推荐阅读