C++ 获取任意整数类型的最大、最小值和长度

从C++11 开始,标准库在头文件<limits> 里提供了std::numeric_limits 工具,可以获取各种数值类型的参数。

对于整数类型T

  • 最大值:std::numeric_limits<T>::max()
  • 最小值:std::numeric_limits<T>::min()
  • 是否为有符号类型:std::numeric_limits<T>::is_signed
  • 二进制最大长度:std::numeric_limits<T>::digits
  • 十进制最大长度:std::numeric_limits<T>::digits10 + 1

对于有符号整数,std::numeric_limits<T>::digits 不包含符号位,所以int 的长度会比unsigned 小。

std::numeric_limits<T>::digits10 返回的是10 的幂,比如T 类型的最大值是maxmaxmax,max=n×10jmax = n × 10^jmax=n×10j,digits10 就是jjj。或者说digits10 就是log10(max)log_{10}(max)log10(max) 再向下取整。对于uint8_t 类型,最大255digits10 == 2

相关推荐
s1hiyu1 分钟前
C++动态链接库开发
开发语言·c++·算法
(❁´◡`❁)Jimmy(❁´◡`❁)2 分钟前
CF2188 C. Restricted Sorting
c语言·开发语言·算法
星火开发设计6 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
许泽宇的技术分享8 分钟前
第 1 章:认识 Claude Code
开发语言·人工智能·python
45288655上山打老虎8 分钟前
QFileDialog
c++
AIFQuant23 分钟前
如何利用免费股票 API 构建量化交易策略:实战分享
开发语言·python·websocket·金融·restful
Hx_Ma1624 分钟前
SpringMVC返回值
java·开发语言·servlet
独自破碎E30 分钟前
【滑动窗口+字符计数数组】LCR_014_字符串的排列
android·java·开发语言
2601_9494800636 分钟前
【无标题】
开发语言·前端·javascript
Jack_David40 分钟前
Java如何生成Jwt之使用Hutool实现Jwt
java·开发语言·jwt