位、字节、半字、字、内存位宽
知识点
1.什么是内存
1)硬件上:内存条是电脑上的一个配件,根据不同硬件实现原理可以把内存分为DRAM SRAM上一章博客提到了静态内存和动态内存)动态还是静态是硬件的特性,和硬件设计原理有关。
2)逻辑上:可以随机访问任意一个地址的内容,并且可以对其地址内容进行读写
2.内存的逻辑抽象图也就是内存的编程模型)
1)CPU有8位、16位、32位、64位的。最常用的就是32位,CPU的位就是说CPU一次可以访问多少位,一个字节是八位,那就是一次访问四个字节(32位)
3.位和字节
1)一位就是1 bit位,一个字节是8 bit,也叫1字节(1byte)
2)int类型的变量在32位机器上是4字节的,在其他平台上就不一样了,int类型定义的变量根据不同平台而异。
4.字和半字和双字
1)依赖于不同的平台平台不同 所占大小不相同)
2)在写程序之前搞清当前机器的内存位宽,就可以知道字。半字和双字的大小了。
5.内存位宽
1)内存位宽就是CPU一次可以访问的最大位数,32位CPU就是说CPU的内存位宽是32位(4字节)
2)32位的就是四个字节 两个8位单片机芯片可以并联成16位的
3)在逻辑上,内存位宽是任意的,但是要考虑到硬件本身限制,CPU一次访问的内存是有限的,需要注意的是加入CPU位宽是32 位,那么只有同时访问32位内存时,效率是最高的,哪怕访问16位效率也会大大降低。
总结:
C语言是以一种介于高级语言和低级语言之间的语言,C语言写程序要从内存角度着想,了解内存的人往往能够写出更好的程序代码。