许多编程语言都只处理“纯文本”,而非二进制。这是否意味着仅允许使用 ASCII 范围内的字符?
二进制只是一系列字节,类似于将一系列字节解释为字符的纯文本。因此,纯文本是否能够存储与二进制相同的数据格式/协议?
二进制只是一系列字节,类似于将一系列字节解释为字符的纯文本。因此,纯文本是否能够存储与二进制相同的数据格式/协议?
纯文本可以被人类读取,而二进制文件通常无法被人类读取,因为它由可打印和不可打印字符组成。
尝试使用文本编辑器(例如记事本或vim)打开jpeg文件,你就会明白我说的是什么。
二进制文件通常以优化速度的方式构建,因为不需要解析。纯文本文件可以手动编辑,而二进制文件则不能。
它经常意味着语言可能会自由解释某些控制字符,例如值10或13,作为逻辑行终止符。换句话说,输出操作可能会在末尾自动附加这些字符,而输入操作可能会从输入中剥离它们(和/或在那里终止读取)。
相比之下,广告“二进制”数据的语言I/O操作通常会包括一个输入参数,用于操作数据的长度,因为除了读取文件结尾以外,没有其他方法可以知道何时完成。
从技术上讲,没有任何区别。纯文本是一种二进制数据形式。不过,主要区别在于数值的存储方式。以整数的存储方式为例,二进制数据使用二进制补码格式,可能需要占用32位空间。而在文本格式中,数字将被存储为一系列unicode数字。因此,数字50在二进制中将被存储为0x32(填充以占用32位),但在纯文本中将被存储为'5''0'。