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

相关推荐
2501_941870564 分钟前
面向微服务熔断与流量削峰策略的互联网系统稳定性设计与多语言工程实践分享
开发语言·python
modelmd9 分钟前
Go 编程语言指南 练习题目分享
开发语言·学习·golang
HABuo12 分钟前
【Linux进程(四)】进程切换&环境变量深入剖析
linux·运维·服务器·c语言·c++·ubuntu·centos
工口发动机20 分钟前
ABC440DEF简要题解
c++·算法
带土127 分钟前
4. C++ static关键字
开发语言·c++
橘颂TA27 分钟前
【Linux】死锁四条件的底层逻辑:从锁冲突到 STL 组件的线程安全实践(Ⅵ)
linux·运维·服务器·c++·死锁
C++ 老炮儿的技术栈33 分钟前
什么是通信规约
开发语言·数据结构·c++·windows·算法·安全·链表
@大迁世界37 分钟前
TypeScript 的本质并非类型,而是信任
开发语言·前端·javascript·typescript·ecmascript
栗子叶42 分钟前
Java对象创建的过程
java·开发语言·jvm
Amumu121381 小时前
React面向组件编程
开发语言·前端·javascript