Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Byte 字节是真的吗?_Byte_Computer Science_Bit - Fatal编程技术网

Byte 字节是真的吗?

Byte 字节是真的吗?,byte,computer-science,bit,Byte,Computer Science,Bit,我知道这个问题听起来很愚蠢,但让我解释一下。所以 每个人都知道字节是8位。很简单,对吧?但具体在哪里呢?我的意思是,从物理上讲,你实际上并不使用字节,而是位。例如,驱动器。据我所知,它只是一个真正长的1和0字符串,而不是字节。当然,有一些扇区,但据我所知,它们是在软件级别编程的(至少我认为是在SSD中)。还有RAM,它也是一个长串的1和0。另一个例子是CPU。它一次不处理8位,但只处理一位 那么具体在哪里呢?或者这只是一般规则,每个人都遵守?如果是这样,我可以制作一个系统(操作系统或更低级别的系

我知道这个问题听起来很愚蠢,但让我解释一下。所以

每个人都知道字节是8位。很简单,对吧?但具体在哪里呢?我的意思是,从物理上讲,你实际上并不使用字节,而是位。例如,驱动器。据我所知,它只是一个真正长的1和0字符串,而不是字节。当然,有一些扇区,但据我所知,它们是在软件级别编程的(至少我认为是在SSD中)。还有RAM,它也是一个长串的1和0。另一个例子是CPU。它一次不处理8位,但只处理一位

那么具体在哪里呢?或者这只是一般规则,每个人都遵守?如果是这样,我可以制作一个系统(操作系统或更低级别的系统)来使用一个字节中的9位吗?否则我就不必了?还有,为什么不能使用少于一个字节的内存?或者你可以?例如:两个应用程序是否可以使用相同的字节(例如,第一个应用程序使用4位,第二个应用程序使用其他4位)?最后,但并非最不重要的是,计算机驱动器真的使用字节吗?或者,例如,比特1-8属于某个东西,在它们旁边有3个随机比特,比特12-20属于不同的东西

我知道有很多问题,知道这些问题的答案不会改变任何事情,但我只是想知道


编辑:好吧,我可能表达得不够清楚。我知道字节只是一个概念(好吧,即使是位也只是一个我们要实现的概念)。我不是问为什么字节中有8位,为什么字节作为一个术语存在。我要问的是,在计算机中,字节是在哪里定义的,或者它是否已经定义。如果字节确实是在某个地方定义的,那么是在什么级别(硬件级别、操作系统级别、编程语言级别还是应用程序级别)?我还想问,如果计算机经常使用字节(比如在两个字节之间,会有3个随机位吗?),它们是否关心字节(在我们已经实现的概念中)。是的,它们是真实的,因为它们有定义和标准化的使用/理解。byte的维基百科文章说:

如ISO/IEC 2382-1:1993所述,八位的现代事实标准是一个方便的二次幂,允许一个字节的值为0到255(8=256的二次幂,其中零也表示一个数字)。[7]国际标准IEC 80000-13对这一共同含义进行了编码。许多类型的应用程序使用8位或更少位表示的信息,处理器设计者针对这种常见用法进行了优化。主要商业计算架构的流行有助于普遍接受八位大小。[8]现代架构通常使用32位或64位字,由四个或八个字节组成

全文可能值得一读。50多年前,没有人在桌子上挥拳说“一个字节应该是8位”,但随着时间的推移,情况变得如此,流行的微处理器能够一次对8位执行操作。后续的处理器体系结构将在这些处理器的倍数上执行ops。虽然我相信英特尔可以使他们的下一个芯片成为100位功能的芯片,但我认为我们将遇到的下一个位革命将是128位

每个人都知道字节是8位吗

这些天,是的

但具体在哪里呢

ISO代码见上文

我的意思是,从物理上讲,你实际上并不使用字节,而是位

从物理上讲,我们也不使用BIT,而是在涂有铁锈的铝板上使用可检测磁场强度的阈值,或者使用电荷存储量

据我所知,它只是一个真正长的1和0字符串,而不是字节

没错,计算机上的一切都是一个非常长的0和1流。在定义其他任何内容时,重要的是在何处停止计算这组0或1,并开始计算下一组,以及您所称的组。一个字节是一组8位。为了方便,我们把东西分组。把24罐啤酒带回家比一盒24罐啤酒要麻烦得多

当然,有一些扇区,但据我所知,它们是在软件级别编程的(我认为至少在SSD中是这样)

扇区和字节是类似的,因为它们代表一组内容,但它们不一定像位和字节那样直接相关,因为扇区是字节之上的分组级别。随着时间的推移,扇区作为磁道段的含义(对盘片编号的引用以及与盘片中心的距离)已经发生了变化,因为进步的步伐已经取消了位置寻址,后来甚至取消了旋转存储。在计算中,你通常会发现有一个很难使用的基本级别,因此有人在它上面构建了一个抽象级别,这就成为了新的“难以使用”,所以它被一次又一次地抽象

还有RAM,它也是一个长串的1和0

是的,因此很难使用,所以它被抽象了,又被抽象了。你的程序本身并不关心提高存储芯片中某个电容区域的电荷水平,它使用它可以访问的抽象,这种吸引会降低下一个级别,依此类推,直到神奇发生在层次结构的底部。在这段向下的旅程中,你在哪里停下来主要是一个定义和任意选择的问题。我通常不认为我的RAM芯片像是充满电子的冰块托盘,或者是亚原子量子,但我想。当它对解决问题不再有用时,我们通常会停止 问题

另一个例子是CPU。它一次不处理8位,但只处理一位

这在很大程度上取决于你对“一次”的定义——这个问题的大部分是关于各种事物的定义。如果我们任意决定“一次”是