1、打印二进制机器码,程序内存分析,大端序小端序,指针数组,数组指针,数组的三种访问方式,typedef,#if-0-#endif,求数组大小,括号表达式
1.打印二进制机器码(分别表示32位的和64位的)
#include <stdio.h>
/*按照8位的长度打印一个数值*/
void dis8bit(char val)
{
int bit = 8;
while(bit--)
{
if(1<<bit&val){
printf("1");
} else {
printf("0");
}
if(!(bit%4))
printf(" ");
}
putchar(10);
}
/*按照32位长度打印数值的机器码*/
void dis32bit(int val){
int bit = 32;
while(bit--){
if(1<<bit&val){
printf("1");
} else {
printf("0");
}
if(!(bit % 4))
printf(" ");
}
putchar(10);
}
int main(void)
{
int a = -1,b = -128,c = 127,d = 0;
dis8bit(a);
dis8bit(b);
dis8bit(c);
dis8bit(d);
int e = 127;
dis32bit(e);
return 0;
}
2.关于程序内存。
Bss区的生命周期是从程序的开始到程序的结束。
3.关于数据在内存中的存储
int a;全局变量,并且未初始化,所在在数据段的bss区。被初始化为0
static int b; 静态全局变量,数据段的bss段,在bss区。
int c[10] = {1,2,3,4}; 全局的数组在data段,这里的数据在运行的时候会被拷贝来的。
4.大端存储和小端存储引起的问题
在内存中的分析如下:
5.数据类型 * 指针变量
指针变量,本质同普通变量。
* 指明后面的变量为指针变量
数据类型指明,从该变量存放的地址处的寻址能力。
char *p; 代表了从p这个地址处的寻址能力是1个字节,(因为char *类型的寻址能力为1个字节)。
指针的一个重要概念 步长 = 数据类型的大小
int a[10]等价于==》int[10] a;
6.关于typedef关键字
typedef int ARRAY[10]; 给数组定义别名
给参数起别名的步骤:
再如:
void (*p)(int,int);的别名为:typedefvoid (*pp)(int,int);这个时候pp就是指针函数的别名。
7.数组:
数组访问的方式有:
A:下标法,特例列举:
这里说明,如果想得到一个数组的值也可以通过i[a]è下标[数组名]的方式得到
B:偏移法的方式取数值,举例:
C:指针法
*p++ 《==》*(p++)
8.数组局部初始化
9.#if-0-#endif排除某段代码影响
10.数组求大小
求作为函数参数传递的数组名的大小:
11.括号表达式
分析:int xx[3][2] = {(1,2),(3,4),(5,6)};实际上等价于:intxx[3][2]={2,4,6};
内存分析:
1、打印二进制机器码,程序内存分析,大端序小端序,指针数组,数组指针,数组的三种访问方式,typedef,#if-0-#endif,求数组大小,括号表达式相关推荐
- 低字节+高字节+字地址+大端序+小端序全辨析
低字节+高字节+字地址+大端序+小端序全辨析 @(组成原理) 本次总结这个知识点的起因是一道相对寻址题中把这个知识点作为基本条件,然而其他的问题我都明白,却卡在了低字节为字地址的存放方式中.因此有必要 ...
- 计算机系统-理论-内存读取/大端法小端法
8086是按照下面这个内存模型来看待内存的 8086在加电的时候,默认读取CS=F000,IP=0地址出的值,也就是上图中黄色部分,那里固化了开机时需要执行的指令,在ROM区 内存读取:在一块连续的内 ...
- Java程序内存分析
2019独角兽企业重金招聘Python工程师标准>>> Java程序内存分析:使用mat工具分析内存占用 http://my.oschina.net/biezhi/blog/2862 ...
- android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications
Android应用程序内存分析 原文链接:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html ...
- 整数中内存中的保存方式:大端、小端
一个数在计算机内存中的保存方式是大端法表示还是小端法表示? 首先C++当中并没有规定我们这个内存中,整数在内存中是采用大端法还是小端法表示.所以在编写程序的时候这一点并不是很重要. 但是如果编写一个程 ...
- 用一个程序弄清你的计算机是大端还是小端存储
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.什么是大端(小端)存储? 二.具体实现方法 一.什么是大端(小端)存储? (1)大端存储:数据的高字节放在内存的底地址处 ...
- c语言 int大端转小端,C++将整型数据转换成大端或小端存储顺序
昨晚帮导师从指令中恢复图像的时候,导师要我转换成raw格式,也就是记录图像像素的二进制序列,然后反复强调让我注意大端小端.当时我也没在意,用ofstream的write方法一个个地写进去,发现有部分数 ...
- 22 大端序和小端序
分析下列程序,输出结果(AC) #include<stdio.h> #include<stdlib.h> union X{int32_t a;struct {int16_t b ...
- IoT:大端与小端字节数据详解
大端与小端字节数据详解 转自:https://blog.csdn.net/dosthing/article/details/80641173 前言 计算机的数据以01构成的字节存储,这就涉及数据大小端 ...
最新文章
- 对于session序列化跟session的钝化与活化的粗浅理解
- 教你如何用Harbor 私有镜像仓库搭建
- 如何解决使用mac聚焦搜索无法搜索软件的情况
- oracle数据库基础知识总结,oracle知识点总结(一)
- JavaScript异步加载与同步加载
- 【新功能发布】事件监控升级-支持自动化处理云产品异常
- linux 设置ssh免密登录
- MathType中公式不对齐怎么办
- 【Python】SyntaxError: Non-ASCII character '\xe8' in file
- 微信小程序性能优化总结
- 2021年化工自动化控制仪表考试题及化工自动化控制仪表考试试卷
- Pygame实战:打扑克嘛?Python教你“经典纸牌游戏21点”玩法
- 计算机技术预测蛋白质结构,线上分享 | 同源建模预测蛋白质结构,中科院计算所ProALIGN研究解读...
- PyCharm 安装numpy包
- Sublime的实用汉化方法
- 10M/s,保姆级教程,制作自己的网盘不限速工具!
- IR Cut Filter主要作用分别是什么?_安防 | 说说监控摄像头中IR-CUT双滤光片哪些事...
- 电子科技大学和东北大学计算机专业哪个好,电子科技大学、南京航空航天大学、东北大学,你会怎么选择?...
- scratch编程神秘的吉普赛读心术
- 实战:ingress-nginx 高级配置1-2022.1.5
热门文章
- wxWidgets:wxHashMap类用法
- wxWidgets:wxColourDatabase类用法
- boost::variant2模块实现默认构造相关的测试程序
- boost::mpi::cartesian_communicator相关用法的测试程序
- boost::math模块计算 Bessel 和 Neumann 函数的零点的测试程序
- boost::iostreams::detail::execute_all用法的测试程序
- boost::geometry::partition用法的测试程序
- Boost::context模块fiber的斐波那契测试程序
- Boost:BOOST_VERIFY扩展的用法测试程序
- VTK:可视化之Wireframe