前提条件-基数转换,1和2的二进制数的补码,2的二进制字符串的补码
假设以下代码片段int a = -34;
现在如何将其存储在内存中。这就是完整的理论。每当遇到带有减号的数字时, 该数字(忽略减号)都将转换为其等效的二进制数。然后计算数字的两个补数。这两个补码将保留在内存中分配的位置, 并且由于保留的二进制数为负数, 因此符号位将设置为1。每当访问该值时, 首先将检查符号位是否为1, 然后二进制文件将被二进制补码并转换为等效的十进制数, 并以减号表示。
让我们举个例子:
示例–
整数a = -2056;
2056的二进制将被计算为:
00000000000000000000100000001000(32位表示, 根据int在C中的存储方式)
上述二进制文件的2的补码是:
11111111111111111111011111111000.
因此, 最终上述二进制文件将存储在为变量a分配的内存中。
当它开始访问变量a的值时, 将从存储位置中检索上述二进制文件, 然后将检查其最左位的符号位是否为1, 因此二进制数为负数, 因此将是2的补码, 当将是2的补码时将得到2056的二进制数, 即:
00000000000000000000100000001000
【负数如何存储在内存中()】上面的二进制数将被转换为2056的十进制等效数, 并且符号位为1, 因此将从二进制数获得的十进制数将用负号表示。在我们的情况下-2056。
推荐阅读
- Haproxy搭建负载集群
- 10个常用的Python包用法示例介绍
- 2021年最适合开发者的10个Java开源工具合集
- 11个最佳而常用的React组件库,前端开发必备!
- 推荐20个常用的VSCode插件,码农开发必备!
- 如何成为软件架构师(学习路线图)
- 采矿是如何运作的(为什么需要采矿?)
- 著名公司如何使用机器学习(机器学习应用例子)
- 链接器如何解析在多个位置定义的全局符号()