这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战
日常开发和工作中,我们经常会用到键盘上的
Enter
键,很多人认为回车就是换行,这其实是键盘上的键给大家的错觉,其实在最初的计算机中,回车和换行是两个不同的概念。
更多文章在我的 Github 及个人公众号【全栈道路】上,欢迎观赏【一个不知名的足球狗的前端知识点】,如有受益,不要钱,小手点个Star。
阅读本文您将收获
- 换行和回车的由来
- 换行和回车的区别
换行和回车的由来
-
在计算机还没有出现之前,有一种电传打字机,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
-
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做
回车
,告诉打字机把打印头定位在左边界;另一个叫做换行
,告诉打字机把纸向下移一行。 -
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
-
Unix
系统里,每行结尾只有<换行>
,即\n
-
Windows
系统里面,每行结尾是<回车><换行>
,即\r\n
-
Mac
系统里,每行结尾是<回车>
-
一个直接后果是,
Unix/Mac
系统下的文件在Windows
里打开的话,所有文字会变成一行; 而Windows
里的文件在Unix/Mac
下打开的话,在每行的结尾可能会多出一个^M
符号。
换行 \n (line feed)
顾名思义是本行执行换行,光标会跑到下一行的前面,开始从下一行开始输入
- 换到当前位置的下一行,而不会回到行首
- 十六进制为:
0x0A
- ASCII码: 10
回车 \r (carriage return)
车,指的是光标,每次输入的时候,车就会往前面跑(光标会往右移)。回车便是让车回到本行的最初位置
- 回到当前行的行首,而不会换到下一行
- 十六进制为:
0x0D
- ASCII码: 13
写在最后
如果你觉得这篇文章对你有益,烦请点赞以及分享给更多需要的人!
欢迎关注【全栈道路】及微信公众号【全栈道路】,获取更多好文及免费书籍!
有需要【百度】&【字节跳动】&【京东】&【猿辅导】内推的也请留言哦,你将享受VIP级极速内推服务~