如何在计算机中解释数据

时间:2018-07-23 17:46:47

标签: interpretation

让我烦恼的是如何在计算机中解释传入数据。我进行了很多搜索,但找不到答案,因此作为最后的要求,我在这里提出了要求。我的意思是,您将USB插入计算机,然后开始数据流。您的计算机从USB接收到一和零,并正确地解释它们,例如在USB内部,存在名称不同,格式和分辨率不同的图片。我不了解的是计算机如何正确地将它们组合在一起,并且出现了大局。这可以看作是一个愚蠢的问题,但是让我思考了一段时间。这个系统如何运作?

我不是计算机科学家,但是我正在研究电气和电子工程并且知道一些东西。

1 个答案:

答案 0 :(得分:1)

所有都是1和0的流,它们被累加为字节。如您所知,可以多路复用它们,但是使用现代硬件不是很必要(USB中的“ s”代表“串行”)

“ A”的纯黑白图像将是二维数组:

111
101
111
101
101

3x5 font

我猜想“ A”以111101111101101的形式存储在字体文件中,已知长度为3 * 5 = 15位。

在窗口中显示时,该A将分解为几行,并插入到窗口的相应行中,从而可能成为包含320x256像素的流。

当数据长度不恒定时,可以:

  • 如果有最大大小,则可能是最大大小(整数和其他原始数据类型会这样做,0占用32/64位,400123也是如此)
  • 某处包含长度,通常是一种“标题”
  • 它被分为固定大小或可变大小的块,并具有连续位(UTF-8是恒定块的一个很好的简单示例,某些网络协议(可能是TCP / IP)是可变块的一个很好示例)

双方都需要知道如何解码数据,例如,在上面有图像的USB记忆棒示例中。操作系统具有一个驱动程序,该驱动程序将UUID理解为存储设备,并尝试从中读取special sectors。如果检测到可识别的分区类型(对于Windows是NTFS或FAT32),它将使用了解如何解码的驱动程序加载文件表。它找到允许通过文件名访问的文件名。然后,图像读取程序可以加载该文件的字节流,并使用its headers对其进行解码,并将已安装的编解码器解码到光栅图像阵列中。如果这些片段中的任何一个在您的系统中不可用,则您将无法查看该图像,并且该图像将只是您的任何随机二进制文件(如果您使用Linux格式化USB记忆棒,或使用不常见/旧的图像格式)

因此,当您进入更高级别时,所有各种级别的显式或隐式握手都可以商定数据是什么(更高级别至少应在endianness和数据传输的波特率上达成一致) >