zoukankan      html  css  js  c++  java
  • 二进制流和文本流的区别

    在c中引入了流(stream)的概念。它将数据的输入输出看作是数据的流入和留出,这样不管是磁盘文件或者是物理设备(打印机、显示器、键盘等),都可看作一种流的源和目的,视他们为同一种东西,而不管其具体的屋里解构,即对他们的操作,就是数据的流入和流出。这种把数据的输入输出操作对象,抽象化为一种流,而不管它的具体结构的方法很有利于编程,而涉及流的输出操作函数可用于各种对象,与其具体的实体无关,即具有通用性。

    在c中流可分为两大类,即文本流和二进制流。

    所谓文本流是指在流中流动的数据是以字符形式出现。

    二进制流是指流动的是二进制数字序列,若流中有字符,则用一个字节的二进制ASCII码表示,若是数字,则用一个字节的二进制数标识。在流入流出时,对 符号不进行变换。例如2001这个数,在文本流中用其ASCII码表示为

    '2' '0' '0' '1'

    ||||

    50 48 48 49

    共占4字节。而在二进制流中则表示为:00000111 11010001 用十六进制就是07D1。只占两字节。

    由此看出,二进制流比文本流节省空间,且不用进行对 的转换,这样可以大大加快流的速度,提高效率。因而,对于含有大量数字信息的数字流,可以采用二进制流的方式;对于含有大量字符信息的流,则采用文本流的方式。

    文本文件与二进制文件的定义

    大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。

    简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。

    二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)

  • 相关阅读:
    uva 147 Dollars
    hdu 2069 Coin Change(完全背包)
    hdu 1708 Fibonacci String
    hdu 1568 Fibonacci
    hdu 1316 How Many Fibs?
    poj 1958 Strange Towers of Hanoi
    poj 3601Tower of Hanoi
    poj 3572 Hanoi Tower
    poj 1920 Towers of Hanoi
    筛选法——素数打表
  • 原文地址:https://www.cnblogs.com/teemor/p/9985160.html
Copyright © 2011-2022 走看看