对于现代平台,这些大小是可预测的,字节是8位,int是4或8个字节,依此类推."字节"的定义和实现不太可能改变,因为它的这个版本在20世纪70年代引入了8位CPU,这可以说导致ASCII胜过竞争标准.它已经变得如此根深蒂固,以至于某些语言在字面上对待它:在法语中,"byte"这个词是"八位字节".
对于历史平台,所有投注均已关闭.有些使用10,12,18或36位整数.早期的计算机没有使用的所有字节,而是话这是任意大小的.事物由这些单元组成,其中"双字"值可能是48位,无论出于何种原因.这是一个单个位可能由几个真空管或全尺寸晶体管代表的时代,因此实际成本问题导致一些非常不寻常的设计.
现在谈到字符时,它们不一定是一个字节.在UNICODE中,它们可以远远超过它,特别是当表达为UTF-8,UTF-16或UTF-32时,这种文本的常用编码方法.只有像Latin1这样的8位编码才能使字符和字节可以互换.
重要的是要考虑到虽然大多数消费者CPU的尺寸非常均匀,但在处理DSP或定制FPGA处理器等专用设备时,这一切都会消失.
好消息是,您不太可能在DSP或定制FPGA处理器上进行字符处理,这些处理器是围绕不寻常的寄存器大小构建的.这些通常专注于处理其他类型的数字数据.