计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。就好像酒店是以房间为单位的,每个房间都有一个唯一的房号,我们根据房号就能找到对应的房间。

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. 取值范围

最新文章

  1. [转]如何循序渐进向dotnet架构师发展
  2. [PHP100] PHP如何防止注入及开发安全
  3. Shell最多支持多少个参数
  4. Netfilter&iptables:如何理解连接跟踪机制?
  5. 5.2 CUDA Histogram直方图
  6. 分布式模式之broker模式
  7. 【HTML】Beginner3:ParagraphsEmphasisLine breaks
  8. Cogs 1070. [焦作一中2012] 玻璃球游戏 带权并查集,逆序处理
  9. [转] npm 模块安装机制简介
  10. win2k,XP下用setupapi.dll自动安装Driver
  11. zepto.js 处理Touch事件(实例)
  12. Web自动化之Headless Chrome概览
  13. ubuntu16 gitlab的简单安装
  14. 18.Class 的基本语法
  15. 使用 AutoMapper 映射 IDataReader、DataSet、DataTable 到实体类
  16. Eclipse修改已存在的SVN地址
  17. 理解 BFC
  18. ArrayDeque解析
  19. 基于docker创建的Jenkins,settings.xml文件放在哪里
  20. $_SERVER的详细参数整理下

热门文章

  1. This is your life , in Winbledon , interview Roger Federer
  2. swift 获取UI上某点点颜色
  3. 适用于各浏览器支持图片预览,无刷新异步上传js插件
  4. 实现一个不停发包的Android应用(类似于电脑上的Ping命令)
  5. Maven项目报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
  6. C# mvc--EF引用程序集 和EDMX中相关的文件说明
  7. Quoit Design
  8. JS实现滚动条滚到页面距离底部300px时执行事件的方法
  9. 函数参数选项的处理getopt getopt_long getopt_long_only
  10. 《Cortex-M0权威指南》之体系结构---程序映像和启动流程