类型大小与其值范围之间的关系?
relation between size of types and their range of values?
在 C++ 或任何其他语言中,类型的大小和它们采用的值范围之间的关系是什么? 例如 - char 有 1 个字节大小,这意味着没有。它可以存储的值为 2^8。 那么为什么它只能取 -128 到 127 之间的值,为什么不能取更大的值。 它与位模式有关吗? 还是我误解了这件事。我是编程新手,我很快就掌握了这些概念,但我被困在这个概念中!! 请解释一下与浮点类型相关的内容!!提前致谢
从状态数量的基本概念开始。位有两种状态 -0
和1
.两位有四种可能的状态:00
、01
、10
和11
。对于三位,状态数为八:
000 001 010 011 100 101 110 111
现在应该会出现这种模式:添加额外的位会使一组位可以采用的状态数量增加一倍。这很容易看出:如果k
位的状态数是N
,那么对于k+1
位,当添加的位被0
时有N
状态,当它被1
时N
更多的状态,或者完全N+N
。因此,k
位可以有 2k个状态。
字节是 8 位的组,因此一个字节可以具有的状态数为 2k,即 256。如果使用字节表示无符号值,则其范围将为 0..255(含(。对于有符号值,取一个位来表示符号。在 2 的补码表示中,值范围变为 -128..127。负值允许一个额外的值,因为范围的非负部分包括零,而范围的负部分没有零。
它简单的数据类型变量具有2^(sizeof(datatype) * CHAR_BIT)
值。现在取决于此数据类型是signed
还是unsigned
.
signed
具有0 .. ((2^(sizeof(datatype) * CHAR_BIT))-1)
值。
unsigned
具有-((2^(sizeof(datatype) * CHAR_BIT))/2) .. +((2^(sizeof(datatype) * CHAR_BIT)/2)-1)
值。
字符数据类型
2^8
256
哪里
-128..127
具有256
值
对于signed char
和unsigned char
有范围
0..255
,仍然256
值。
字节是 8 位的序列。
+---+---+---+---+---+---+---+---+
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+---+
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
最高位(以小位字节序表示值是0 - positive
还是1 - negative
,其余位表示值。
然后你有
+---+---+---+---+---+---+---+---+
| 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | < Max positive number
+---+---+---+---+---+---+---+---+
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
和
+---+---+---+---+---+---+---+---+
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | < Max negative number
+---+---+---+---+---+---+---+---+
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
零的 becouse 数通常用 2 的补码表示。
从二的补码转换如下
1. Invert all bits -> |0|1|1|1|1|1|1|1| -> 127
2. Add 1 -> |1|0|0|0|0|0|0|0| -> 128
3. Change sign -> -> -128
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 移动语义和深层/浅层复制之间有什么关系?
- #include < conio.h> 和 getch() 方法之间的关系是什么?
- 超市管理系统的类别之间应该是什么关系?
- 指针和程序性能之间有什么关系吗?
- node.h/node.cpp/nodelist.cpp之间的关系
- 运行线程和线程对象之间的关系
- 类型大小与其值范围之间的关系?
- 2个期货之间的依赖关系
- Qt:工作线程和 GUI 事件之间的关系
- 如何强制 qbs 产品与依赖关系之间的同步?
- 在头文件和 .cc 文件之间建立关系
- C 和Windows OS之间的关系
- 为什么赋值运算符和相等运算符之间没有 1:1 的关系?
- QComboBox 在 editTextChanged 和 currentIndexChanged 之间的关系
- 使用 .depends 指定 SUBDIRS 项目之间的依赖关系不起作用
- 各种初始化和构造之间的关系
- 变量之间的关系
- 有符号整数类型的最小值和最大值之间关系的C++标准保证是什么