字节,半字,字,双字

  1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位)。不同的CPU一次可以处理的数据位数不同,32位CPU可以一次处理32位数据,64位CPU可以一次处理64位数据,这里的位,指的就是字长。而所谓的字长,我们有时会称为字(word)。在16位的CPU中,一个字刚好为两个字节,而32位CPU中,一个字是四个字节。若以字为单位,向上还有双字(两个字),四字(四个字)。

定义字是根据处理器的特性决定的。首先ARM是32bit处理器,所以它的字是32bit的。半字就是16bit;字节不论在哪个CPU上都是8bit。如果在MSP430(混合信号处理器)上,由于它是16bit处理器,所以它的字是16bit的。半字=字节=8bit。CPU按照其处理信息的字长可以分为:八位微处理器、十六位微处理器、三十二位微处理器以及六十四位微处理器等。CPU最大能查找多大范围的地址叫做寻址能力,CPU的寻址能力以字节为单位,如32位寻址的CPU可以寻址2的32次方大小的地址也就是4G,这也是为什么32位的CPU最大能搭配4G内存的原因,再多的话CPU就找不到了。

下面有一个问题:

int应该是2还是4?VC++ 默认 int 是 long int, 长度是4,TC默认 int 是 short int, 长度是2。
       int类型所占的字节数依赖于机器的字长, 有16位, 32位, 64位.我们现在买电脑时所说的32位机, 64位机就是指这个, 在16位机上int长度是2, 在32位机上长度是4, 所以在编码的时候需要写int长度时, 不能想当然的写2或4, 而应使用sizeof来计算, sizeof(int)这样就不会错了, 而且提高了程序的健壮性。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以采用字节交错存储的方式,将每个数据按照字节顺序插入到主存中,每个数据的不同长度的部分分别存储在不同的字节地址中,这样既节省了存储空间,又能够保证任何长度的数据都在单个存储周期内完成读写。 具体实现是,将每个数据的不同长度的部分按照字节顺序插入到主存中,每个数据存储的字节数都是4的整数倍,不足时在后面补0,这样可以保证任何长度的数据都能够在单个存储周期内完成读写。 对于题目中给出的10个数据,按照上述方式存储在主存中的存储示意图如下: ``` +------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | +------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+ | byte | byte | byte | byte | half | half | half | half | dbl | dbl | dbl | dbl | byte | byte | byte | byte | dbl | dbl | dbl | dbl | half | half | half | +------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+ | byte |byte+1|byte+2|byte+3|half |half+2|half |half+2|dbl+0 |dbl+4 |dbl+8 |dbl+12|byte |byte+1|byte+2|byte+3|dbl+0 |dbl+4 |dbl+8 |dbl+12|half |half+2|half |half+2| +------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+ ``` 其中,"byte"表示一个字节,"half"表示半个(2个字节),"dbl"表示一个双字(4个字节)。每个数据存储的首地址为4的整数倍,由于主存按字节编址,因此每个数据的不同长度的部分可能跨越4字节边界,需要注意处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值