在C语言中INT怎么表示无穷大(小)?

有的书的伪代码中,比如说吧是INT类型的便于比较,初始化为无穷大,这个怎样做?... 有的书的伪代码中,比如说吧是INT类型的便于比较,初始化为无穷大,这个怎样做? 展开
 我来答
风若远去何人留
2015-06-03 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20403 获赞数:450142
专业C/C++软件开发

向TA提问 私信TA
展开全部
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。
chinlee1523
2008-05-25 · TA获得超过713个赞
知道小有建树答主
回答量:590
采纳率:0%
帮助的人:418万
展开全部
如果你的数很大,大的不可预测,那么你就这样弄
char *p;
然后动态地申请内存。
这样,每一位字节代表一位数。
当然这样动态申请内存也不好,因为你也不好确定总的位数吧!
那就直接定义p[N],这里的N就是可能出现的最大位数。
当然,你也可以使一个字节代表两位数,代表一位数似乎有些浪费,但是浪费也浪费不了多少,更主要的原因是,这样计算方便些,一个字节代表两位,实在是麻烦!
方便只是相对的,长度很大的肯定是不好计算的!
如果不是很大,但long 和int都满足不了,那就试试longlong吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2008-05-25 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5404万
展开全部
没有办法表示无穷大和无穷小.
short int
long int
unsigned short int
unsigned long int
自身表示的是16位或32位数,有极限.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
archmageee4
2008-05-25 · TA获得超过1517个赞
知道大有可为答主
回答量:1581
采纳率:78%
帮助的人:950万
展开全部
INT 的范围是 16位(有的系统int可能是16位的)的话是 -32768 ~ 32767
32位的话 约-2G ~ 2G
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式