字、半字、字节理解
前言
计算机里所说的字(word)、半字(Half-word)、字节(Byte)跟我我们平时所说"字"的概念是不一样的,而且针对不同平台,其大小长度也不一样。
一、根据处理器数据位宽区分
●字长:字长也叫 字(word),CPU和内存之间的数据传送单位,字长决定了处理器一次可以处理的二进制代码的长度,同时决定了其通用寄存器、内存储器、运算器的位数和数据总线宽度,我们所说的 8位处理器、16位处理器、32位处理器、64位处理器就是区分的其字长不同。
●字(word):总线是一般设计用来传输固定大小的数据,这块数据被称为字,其大小取决去具体系统的总线宽度
●半字(Half-Word):可以理解字的一半的长度,但是有例外,比如ARM的16位处理器的字和半字都是16位
●字节(Byte):这个好理解,无论操作系统的位宽 8位(bit)为一个字节(1Byte)
二、根据处理器平台区分
字的长度不仅跟处理器字长相关而且和平台相关:
Intel平台:字(word) 表示16位数据类型,双字(double word) 表示32位数据类型,四字(quad word) 表示64位数据类型。因为Intel公司中无论是32位架构的机器还是64位架构的机器,它们都是从16位架构的基础上扩展的。
Intel处理器平台 | 64位处理器 | 32位处理器 | 16位处理器 |
---|---|---|---|
字(word) | 16位 | 16bit | 16bit |
半字(Half-Word) | 8bit | 8bit | 8bit |
字节(Byte) | 8bit | 8bit | 8bit |
双字(double word) | 32bit | 32bit | 32bit |
ARM平台:字(word)的长度为32位(bite),4个字节(byte)在8位/16位处理器体系结构中,字的长度一般为16位(bite),2个字节,
arm处理器平台 | 32位处理器 | 8/16位处理器 |
---|---|---|
字 (word) | 32bit | 16bit |
半字 (Half-Word) | 16bit | 16bit |
字节(Byte) | 8bit | 8bit |
双字(double word) | 64bit | 32bit |
总结
所以如果单纯问一个字占多少字节或是多少位是没有意义的。
如有错误,欢迎指正,原创不易,转载留名!