如何计算数据类型的范围,例如int
How to calculate range of data type eg int
我想知道为什么在公式中计算任何数据类型的范围即2^(n-1(,为什么是n-1,n是给定数据类型占用的位数
假设类型是无符号的,最大值为(2n(-1,因为有2n值,其中一个为零
2(n-1(是第n位单独的值-位1是20,位2是21等等
这对任何基数都是一样的——在十进制中,n位数字可以表示10个n不同的值,最大值为10个n>1,第n位数字为"0";价值;10(n-1(。
例如,有三个十进制数字的最大数字是999(即103-1(,第三个十进制位数是"0";"百位";,102。
第一个2^(n-1)
不正确,数据类型表示的最大(无符号(数为:
max = 2^n - 1
因此,对于8位数据类型,最大表示值为255
2^n
告诉您所表示的数字数量(8位示例为256
(,但由于您希望包括0
,因此范围为0 to 255
,而不是1 to 256
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- 尝试通过多个向量访问变量时,向量下标超出范围
- 错误:未在此范围内声明'reverse'
- 正在将指针转换为范围
- 使用std::transform将一个范围的元素添加到另一个范围中
- 在基于范围的for循环中使用结构化绑定声明
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 将数字转换为字母(例如:123 转换为一二三)
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 如何计算数据类型的范围,例如int
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 在C++中查找范围的长度
- 如何设置一个范围来提取我想要获得的信息
- 并行用于C++17中数组索引范围内的循环
- 为左值和右值的包装器实现C++范围
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 直接获取基于范围的循环中的元素类型 **例如"using"
- 如何声明Boost范围适配器(例如MAP_VALUES)
- 结合了boost范围算法,例如boost::copy和boost::remove_if