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 类型,最大255,digits10 == 2。

相关推荐
Severus_black1 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
噢,我明白了2 小时前
JAVA中的一些基础应用知识点
java·开发语言
时间的拾荒人3 小时前
Redis 入门详解:核心特性、重要文件与全局命令实战
开发语言·redis·面试
敲上瘾3 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
码途行者4 小时前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
旖旎夜光5 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
你看我名字5 小时前
产品参数昨天还对,今天已过期:数眼智能与大模型应用如何做资料版本校验
开发语言·架构
老秦包你会6 小时前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php
旖旎夜光6 小时前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习
Wang's Blog15 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友