【学习笔记】【C语言】变量的内存分析
2024-10-11 22:10:15
计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。就好像酒店是以房间为单位的,每个房间都有一个唯一的房号,我们根据房号就能找到对应的房间。
1. 变量的存储
1> 所占用字节数跟类型有关,也跟编译器环境有关
2> 变量实例
int b = 10;
int a = 134;
*内存由大到小寻址
*只存储二进制形式
*每个变量都有地址:第一个字节的地址就是变量的地址
3> 查看内存地址的两种方式:%x和%p
4>查看整数的二进制形式
void putBinary(int n)
{
int bits = sizeof(n) * ;
while (bits-->) {
printf("%d", n>>bits&);
if (bits%==) printf(" ");
}
printf("\n");
}
2. 负数在内存中的存储
int main()
{
int b = -;
return ;
}
在第3行定义了一个整型变量,它的值是-10。-10在内存中怎样存储的呢?其实任何数值在内存中都是以补码的形式存储的。
- 正数的补码与原码相同。比如9的原码和补码都是1001
- 负数的补码等于它正数的原码取反后再+1。(取反的意思就是0变1、1变0)
那么-10的补码计算过程如下:
1> 先算出10的二进制形式:0000 0000 0000 0000 0000 0000 0000 1010
2> 对10的二进制进行取反:1111 1111 1111 1111 1111 1111 1111 0101
3> 对取反后的结果+1:1111 1111 1111 1111 1111 1111 1111 0110
因此,整数-10在内存中的二进制形式是:1111 1111 1111 1111 1111 1111 1111 0110
3. 取值范围
最新文章
- [转]如何循序渐进向dotnet架构师发展
- [PHP100] PHP如何防止注入及开发安全
- Shell最多支持多少个参数
- Netfilter&;iptables:如何理解连接跟踪机制?
- 5.2 CUDA Histogram直方图
- 分布式模式之broker模式
- 【HTML】Beginner3:ParagraphsEmphasisLine breaks
- Cogs 1070. [焦作一中2012] 玻璃球游戏 带权并查集,逆序处理
- [转] npm 模块安装机制简介
- win2k,XP下用setupapi.dll自动安装Driver
- zepto.js 处理Touch事件(实例)
- Web自动化之Headless Chrome概览
- ubuntu16 gitlab的简单安装
- 18.Class 的基本语法
- 使用 AutoMapper 映射 IDataReader、DataSet、DataTable 到实体类
- Eclipse修改已存在的SVN地址
- 理解 BFC
- ArrayDeque解析
- 基于docker创建的Jenkins,settings.xml文件放在哪里
- $_SERVER的详细参数整理下
热门文章
- This is your life , in Winbledon , interview Roger Federer
- swift 获取UI上某点点颜色
- 适用于各浏览器支持图片预览,无刷新异步上传js插件
- 实现一个不停发包的Android应用(类似于电脑上的Ping命令)
- Maven项目报错:The superclass ";javax.servlet.http.HttpServlet"; was not found on the Java Build Path
- C# mvc--EF引用程序集 和EDMX中相关的文件说明
- Quoit Design
- JS实现滚动条滚到页面距离底部300px时执行事件的方法
- 函数参数选项的处理getopt getopt_long getopt_long_only
- 《Cortex-M0权威指南》之体系结构---程序映像和启动流程