Rob*_*cks 16 format binary plaintext
许多语言都具有仅处理"明文"而非二进制的功能.这是否意味着只允许ASCII范围内的字符?
二进制只是一系列字节,是不是类似于明文,它只是一系列被解释为字符的字节?那么,明文可以存储与二进制相同的数据格式/协议吗?
Fed*_*oca 10
纯文本是人类可读的,二进制文件通常是人类无法读取的,因为它由可打印和不可打印的字符组成.
尝试使用文本编辑器(例如记事本或vim)打开jpeg文件,你就会理解我的意思.
二进制文件通常以优化速度的方式构造,因为不需要解析.纯文本文件可手动编辑,而二进制文件则不可编辑.
"明文"可以有多种含义.
在这种情况下最有用的一个是它只是一个二进制文件,它以字节顺序组织,特定的计算机系统可以转换成它认为是"文本"字符的有限集合.
第二个含义,有点连接,是一种限制,所述系统应该将这些"文本字符"显示为人类可读的符号,作为可识别字母的成员.通常,不成文的含义是翻译机制是ASCII.
第三个,甚至更具限制性的含义是,该系统必须是"简单"的文本编辑器/查看器.通常暗示ASCII编码.但是,实际上,你,人类,阅读文本以某种时髦格式编码并由专有程序显示,与VI文本编辑器读取ASCII编码文件之间存在极小的差别.
在编程环境中,您的编程环境(由OS +系统API +您的语言功能进行了编译)定义了一组"文本"字符,以及一组能够读取以转换为这些"文本"字符的编码.请注意,这可能不一定意味着ASCII,英文或8位 - 例如,Perl可以原生地读取并使用完整的Unicode"字符"集.
要回答您的具体问题,您绝对可以使用"字符"字符串来传输任意字节序列,但需要注意字符串终止约定必须适用.问题是"处理字符数据"已经存在的函数可能没有任何有用的功能来处理二进制数据.
它通常意味着的一件事是,语言可以随意将某些控制字符(例如值 10 或 13)解释为逻辑行终止符。换句话说,输出操作可能会自动在末尾附加这些字符,而输入操作可能会从输入中剥离它们(和/或终止在那里读取)。
相比之下,宣传对“二进制”数据进行操作的语言 I/O 操作通常会包含一个输入参数,用于表示要操作的数据长度,因为没有其他方法(除了读取文件末尾之外)来知道何时进行操作。已经完成了。
| 归档时间: |
|
| 查看次数: |
8146 次 |
| 最近记录: |