回车与换行的故事

作者: 帅地 | 来源:发表于2018-08-24 18:40 被阅读0次

以前在学汇编的时候,一直不知道老师在换行时,总会打一个换行符回车符,原来他们还有这么一个故事....

在很久以前,有一种叫做电传打字机(Teletype Model 33 ASR) 的机器,那时候还没有计算机这种玩意。在这种打字机上,有一个叫Carriage发部件,它是打字头,相当于打字机的光标。每输入一个字符,光标就会前进一格。当输入的字符满一行后,光标重新从下一行的最左边开始打印。

这个时候会触发两个动作,一个是把光标在垂直方向上向下移,一个是在水平方向上把光标移动到最坐标。然后这种打字机每秒可以打10个字符,相当于0.1秒打一个字符;而要完成这两个动作需要花费0.2秒的时间,如果在这0.2秒中,有新的字符传过来的话,那么这些字符将会丢失。

为了解决这个字符丢失的问题,研制人员就在每行的后面添加了两个表示一行结束的字符:一个叫回车(carriage return),相当于告诉打字机,把光标在水平方向上移到最左边;一个叫换行(line feed),相当于告诉打字机,在垂直方向上把光标移动到下一行。

这就是回车换行的由来。

后来,计算机出现了,这两个概念也被拿了过来。但是那时候储存设备非常昂贵,一些人认为用两个字符用来表示一行的结尾非常浪费,于是产生了分支,不同的厂商有不同的处理方法。

在这些操作系统中,Unix操作系统每行结尾只有换行,即"\n";Windows则是回车+换行,即“\r\n”;而Mac系统里则使用回车来代表结尾,即“\r”。

正是这个原因,才会导致我们有时用Windows系统来打开Unix/Mac系统的文件时,会出现所有文字变成一行的情况,而用Unix和Mac系统打开Windows系统的文件时,在每一行的结尾会多出一个 ^M 的字符。

关注公我的众号:苦逼的码农,获取更多原创文章,后台回复「礼包」送你一份特别的资源大礼包。

相关文章

  • 回车与换行的故事

    以前在学汇编的时候,一直不知道老师在换行时,总会打一个换行符和回车符,原来他们还有这么一个故事.... 在很久以前...

  • 回车与换行

    阮一峰博客中关于回车与换行的解释 阮一峰这篇文章发表在2006年,这时的mac系统还是每行结尾是"<回车>"。 然...

  • 回车与换行

    最近在配置eslint的时候,有这么一个配置属性// 强制使用一致的换行风格 'linebreak-style'...

  • 换行符'\n'与回车符‘\r’

    资料来源1:回车与换行的区别 资料来源2:换行符‘\n’和回车符‘\r’ 图片来源: 回车:光标重新回到本行开头,...

  • MarkDown文章测试

    一级标题 二级标题 三级标题 四级标题 一个回车小换行一个回车小换行两个回车大换行 两个回车大换行 标签超大换行 ...

  • Excel单元格内换行的操作

    一、自动换行 二、自定义换行(软回车) 在需要换行的地方按ALT+回车! 如何批量删除软回车呢?Ctrl+H

  • 回车与换行的由来

    机械打印机时代: 在机械英文打字机上,有一个部件叫“字车”(Carriage)。“字车”这个东西可以想象一下电影中...

  • 回车与换行的区别

    在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个...

  • 回车与换行的区别

    原文:https://www.cnblogs.com/dawn-l/p/5180373.html[https://...

  • 快速生成main()与SystemOutPrintln()

    psvm,回车换行,快速生成main方法 sout,回车换行,快速生成System.out.println();方法

网友评论

    本文标题:回车与换行的故事

    本文链接:https://www.haomeiwen.com/subject/xeyiiftx.html