以前在學彙編的時候,一直不知道老師在換行時,總會打乙個換行符和回車符,原來他們還有這麼乙個故事....
在很久以前,有一種叫做電傳打字機(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的字元。
完
回車與換行的故事
在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決這個問題,就是在每...
細說 回車 和 換行 的故事
最近在php還有c 以及memcache的shell當中經常看到 r n的寫法,剛開始還沒注意,不過後面感覺這樣寫有些不對頭,r表示回車 n表示換行,那這樣不是換行了兩次嗎?為了解決疑惑,問了下度娘,總算對 r n有了新的認識。首先 r 是回車,n 是換行,這毋庸置疑,但是前者的作用只是將游標移到行...
回車與換行
就當乙個科普讀物吧,這幾天看字元裝置還對這個回車和換行還真有點兒搞不清楚。在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元...