首页 新闻 会员 周边 捐助

基础问题:计算机的实际最小存储单位是byte还是bit?

0
悬赏园豆:20 [已解决问题] 解决于 2013-11-06 10:05

这个问题很多人都会回答“bit”,因为1byte=8bit。但是有谁见过哪种编程语言的最小基本类型是bit的?连c这么底层的语言最小类型也是char(1字节)。既然程序员都在操作byte,并且操作系统的文件也是以字节计大小。所以我得出结论:硬盘和内存上的信息都是以字节计,也就是最小的存储“盒子”就是字节。不会出现0.5个字节。

由于对硬件设计一窍不通,欢迎指正和讨论:)

问题补充:

这个问题有实际意义:例如我恢复了一个误删除的文本文件(里面应该是英文),发现里面是乱码。我应该判断这个文件恢复失败呢?还是说可以通过位偏移来纠正呢?

如果最小存储单位是byte,我可以判断失败了。如果是bit,我可以进一步位移。

php la的主页 php la | 初学一级 | 园豆:186
提问于:2013-11-05 14:37
< >
分享
最佳答案
0

内存中bit一个一个的.

但程序交互中设计为了一个字节一个字节地操作.

所以对程序员而言就byte

收获园豆:10
[秦时明月] | 小虾三级 |园豆:738 | 2013-11-06 09:33
其他回答(5)
-1

最小存储单位是"位"(bit).虽然一般程序语言数据类型的最小单位是 byte ,但是通常也提供"位运算".(C语言中还有种特殊的数据结构叫着:位域)

建议你找本大学课本《计算机组成原理》学习下。

收获园豆:5
Launcher | 园豆:45050 (高人七级) | 2013-11-05 15:34
0

因为可以通过位运算去进去操作,所以根本没有必要用bit。而引于bit去操作的话,反而会引起操作的不便。如果一定要以bit的大小去操作的话,请使用汇编。

收获园豆:5
sinhbv | 园豆:2579 (老鸟四级) | 2013-11-05 16:29
0

c还有移位呢,取反,什么的。这难道不是位?|    &    

angelshelter | 园豆:9907 (大侠五级) | 2013-11-05 21:12
0

当然是byte了。 bit 单独有什么意义?  存boolean值还需要1byte呢

gunsmoke | 园豆:3592 (老鸟四级) | 2013-11-06 05:16
0

字面上解释最小存储单位是bit

panjk | 园豆:712 (小虾三级) | 2013-11-06 08:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册