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

相关推荐
艾莉丝努力练剑9 分钟前
hixl vs NCCL:昇腾生态通信库的独特优势分析
运维·c++·人工智能·cann
执风挽^10 分钟前
Python基础编程题2
开发语言·python·算法·visual studio code
我在人间贩卖青春14 分钟前
C++之new和delete
c++·delete·new
Z9fish20 分钟前
sse哈工大C语言编程练习20
c语言·开发语言·算法
Trouvaille ~23 分钟前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
June`32 分钟前
高并发网络框架:Reactor模式深度解析
linux·服务器·c++
小镇敲码人43 分钟前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
萧鼎44 分钟前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
Anastasiozzzz1 小时前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
刘琦沛在进步1 小时前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++