【详解】回车 换行 0x0D 0x0A CR LF \r \n的来龙去脉
1、【回车和换行的历史】 在计算机还没有出现之前,有一种叫做电传打字机( Teletype Model 33 )的玩意,每秒钟可以打 10 个字符。但是它有一个问题,就是打完一行,需要回车换行,此过程,要用去 0.2 秒,正好可以打两个字符。要是在这 0.2 秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。 2、 【关于回车和换行的更详细的解释】 首先,打字机打完一行,意味着,从左到右把一行的字打完了,此时打印机的打印头处于最右边,所以,想要继续打字,需要( 1 )将把打印头移动到最左边,然后( 2 )打字所用的纸张,换到下一行。 而( 1 )打印头移动到最左边的动作,称之为回车; ( 2 )打字所用的纸张换到下一行,称之为换行。其是通过打字机的滚筒滚动,将纸向前滚动,就相当于打印头换了一行,处在新一行的最左边的开始的位置了,即所谓的走纸。 这就是“回车” 和“换行”的来历,从它们的英语名字上也可以看出一二。 对应到计算机系统中: 回车:将当前光标移动到同一行中的最左边(假设是从左到右的输入方式) 换行:保持当前光标的水平位置位置不变,换到下一行。 因此,将回车和换行联合起来,才是我们所常理解的含义: