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

相关推荐
Thera77718 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
炘爚19 小时前
C语言(文件操作)
c语言·开发语言
阿蒙Amon19 小时前
C#常用类库-详解SerialPort
开发语言·c#
凸头19 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun31415920 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
君义_noip20 小时前
信息学奥赛一本通 1952:【10NOIP普及组】三国游戏 | 洛谷 P1199 [NOIP 2010 普及组] 三国游戏
c++·信息学奥赛·csp-s
Moksha26220 小时前
5G、VoNR基本概念
开发语言·5g·php
jzlhll12320 小时前
kotlin Flow first() last()总结
开发语言·前端·kotlin
W.D.小糊涂20 小时前
gpu服务器安装windows+ubuntu24.04双系统
c语言·开发语言·数据库
旖-旎20 小时前
二分查找(x的平方根)(4)
c++·算法·二分查找·力扣·双指针