1、程序和内存

程序:数据+算法

内存的本质就是存储代码和数据的。

数据和代码的存储方式不同,可分为冯诺依曼结构和哈佛结构。

单片机中将变量数据等存放在SRAM中,将程序存储到Flash中,常量通常存储在Flash中。

内存管理

系统角度

语言角度

寄存器、缓存、内存的关系

寄存器离CPU最近c语言移位,接下来是缓存,最后是内存。

CPU只与寄存器中进行存取,寄存器从内存读取数据,但由于寄存器和内存读取速度相差太大,所以产生了缓存。

寄存器()是 CPU 中用于存储数据的单元,而寄存器是位于 CPU 内部的单元。

位,字节c语言移位,半字,字的概念和内存位宽

CPU32位系统一般指数据线位32位,数据线越多一次传输处理的数据越多,性能越好。

若要向内存写入一个数据,向控制总线传输写指令,地址总线上面传输内存地址,数据总线传输要写入内存的数据。

内存单位:GB、MB、KB、B、bit

CPU和内存之间的数据传送单位通常是一个字长,32位的系统一个字为4byte。

stm32是32bit处理器,所以它的字是32bit的(一次处理4字节长度的数据)。半字自然就是16bit(2字节);

内存编址以字节为单位,一个内存单元就是一个字节,无论多少位内存都以字节位单位进行内存编址。

数据类型占用字节大小

占用的大小由编译器决定。

数据类型+*是指针类型,是地址,地址线为32位,则所有的该类型占8个字节。

int a = 5; 若为32位系统,占4个字节,若内存地址从,代表一个字节长度,分配了4个连续的地址。

数据总线,地址总线,存储容量的关系

地址总线AB

一个cpu的N根地址总线,则可以说这个CPU的地址总线宽度为N。这样cpu最多可以寻址2的N次方个内存单元。

数据总线DB

8根数据总线传送一个8位二进制,数据线数量相当于每单元的位数。

存储容量

存储容量=单元数*每单元的位数,一般每单元位数都是8。

例子:若256KB的SRAM具有8条数据线,则他具有多少条地址线,存储容量多少。

256KB = 2^18B 地址线为18条,8位则数据线8条,存储容量256KB*8。

管理内存——数组、结构体、栈、堆

数组

结构体

静态存储区

2、C语言位操作

常用操作符

对寄存器位操作

清零

置一

位取反

移位构建特定二进制数

移位来构造二进制

宏定义完成位运算

宏定义来置位

宏定义清除某位

END

c语言移位_c语言中移位运算符是怎么用的_移位c语言


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注