首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C中将变量设置为可能的最大数?

如何在C中将变量设置为可能的最大数?
EN

Stack Overflow用户
提问于 2010-02-16 23:24:23
回答 9查看 39.9K关注 0票数 22

如何在C中将变量设置为等于无穷大(或任何有保证的最大数值)?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-02-16 23:29:16

代码语言:javascript
运行
复制
#include <limits.h>
int x = INT_MAX;

编辑:在提问者澄清之前回答了,我只是在猜测他们想要什么类型。

票数 33
EN

Stack Overflow用户

发布于 2010-02-16 23:28:35

有一个名为limits.h的文件(至少在Linux上是这样的),它包含这种定义,例如

代码语言:javascript
运行
复制
/* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */
#  define USHRT_MAX 65535

/* Minimum and maximum values a `signed int' can hold.  */
#  define INT_MIN   (-INT_MAX - 1)
#  define INT_MAX   2147483647

/* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */
#  define UINT_MAX  4294967295U
票数 28
EN

Stack Overflow用户

发布于 2015-10-04 18:34:09

另一种获取整数最大值的便携方法:

无符号整数

代码语言:javascript
运行
复制
unsigned int uMax = (unsigned int)~0;

有符号整数

代码语言:javascript
运行
复制
signed int iMax = (unsigned int)~0 >> 1;

解释

将所有位设置为无符号整数擦除符号位,方法是将所有位向右移位一次position

  • (unsigned int)类型转换为无符号整数,而不是使用~0U,因为C没有缩写的后缀,字符文字(通常都小于int )

因此,为了获得最大的char值,只需将公式类型转换为无符号字符,依此类推。

Bonus -有符号整型的最小值

只需在最大有符号整型表达式中再次反转所有位:

代码语言:javascript
运行
复制
signed int iMin = ~((unsigned int)~0 >> 1);

这将第一个符号位设置为1,其余位设置为0

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2273913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档