不同系統下的回車 r和換行 n,及其歷史

2022-02-21 11:33:02 字數 3350 閱讀 9947

我們平時按下鍵盤上的『回車鍵』,就能實現回車換行【我們在螢幕上所看到的就是游標移到了下一行的開頭位置!!ps:不討論軟體實現的特殊功能,如word裡的回車智慧型縮排】。因此對這個按鍵更準確說應該叫做『回車換行鍵』

就且將這種將游標移到下行開頭的功能稱作回車換行吧【注意這和下面將談到的「回車字元」、「換行字元」的區別】!!不同系統對這種功能的實現採用了不同的方式。如windows用兩個控制字元\r\n實現,而linux/unix將其設計為\n,mac也已改為\n。(網上好多文章仍寫著mac是\r!!)

windows

\r\n

0d0a

linux/unix

\n

0a

mac

舊為

\r,現已改為

\n已改為:0a

//\r是mac os 9版本及其之前的回車換行,其後版本為mac os x(基於unix基礎了),回車換行已改為\n

\r\n在ascii碼下具體為:

控制字元

16進製制

10進製

seq縮寫

含義\n

0a10

^jlf

linefeed(換行,newline)

\r0d

13^m

crcarriage return(回車)

對比下:   ascii下,10進製:a是65(41h),a是97(61h),0是48(30h)

關於「回車」(carriage return)和「換行」(line feed)這兩個概念的來歷和區別。

1.電傳打字機(teletype model 33)

方框3:其中,左邊的那個是換行按鍵【即使捲筒上的紙上移一定距離】。。右邊的是回車按鍵【即打字機械移回到最左邊】

箭頭1:是附著在捲筒上的。按下換行鍵(方框3中左邊的那個按鍵)後,紙就會隨著捲筒的滾動往上移動一定距離(行間距嗎!?)。。。

箭頭2:很機械化的裝置啊,我就叫它打字頭

箭頭4:紙帶。。。。那幾排按鍵(這就是鍵盤的起源嗎!?):每個按鍵都有與之對應的針孔。啟動列印針孔帶的功能後(看圖,箭頭4下面有4個撥動開關),每次按下的鍵(什麼a呀,b呀,空格呀,縮排呀,回車呀...),其對應的針孔排列就打到紙帶上。呶,就從箭頭5處流出來了。樣子參見旁邊的圖

箭頭6:就是它實現了電傳打字機的自動打字功能,把得到的針孔紙帶扣到這個箭頭6所在的裝置上(就是圖中5、6箭頭之間的那塊灰色方方的地方),然後撥動箭頭6指向的開關,這樣,整個打字機就會自動打字了。。。並不是說該打字機打字必須要針孔紙帶,前面說了,那幾排按鈕本身就能往紙上手動打字,同時可選擇是否往紙帶上打針孔以便以後重複使用。

總結:當我們得到已經製作好的針孔紙帶時,把它扣到箭頭6所在的裝置上,開啟開關,就能實現自動化打字了:打乙個字母,打字頭移一位,當要移到紙下一行開頭打字時(何時取決於按下的回車和換行鍵),打字頭先移到最左邊,然後紙捲筒上移一下,,然後繼續打字。。。。。自己需要製作針孔紙帶或想手動打字時,可靠那幾排按鈕操作。。。(主要注意的就是回車換行:先按下回車按鍵,再按下換行按鍵...嗯,兩者可以換個順序嗎?)。。

2.(選自網上)在計算機還沒有出現之前,這種叫做

電傳打字機(teletype model 33)

的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行進行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這兩個字元將丟失。

於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。乙個字元叫做「回車」,告訴打字機把打字頭定位在左邊界;另乙個字元叫做「換行」,告訴打字機把紙向上移一行。【可見,上面幾張圖所述的這種打字機,其已經是解決好了的:即回車、換行也有了對應的針孔(代表相應的字元,控制字元)】

這就是「換行」和「回車」的來歷,從它們的英語名字上也可以看出一二。

實驗證明:

1.我在windows下用editplus編輯器輸入如下內容:                                            然後用16進製制形式檢視:     

從圖中的0d和0a可以知道按下的回車換行鍵會插入不可見的兩個字元\r \n(不可見,但上述編輯器用小數點取代了其位置)

2.經我在vmware下的ubuntu12.04系統(linux系統)實驗發現(下圖),ubuntu預設的確是\n.......但是\r\n  \r這2者在其預設文字編輯器gedit下仍能正常換行的!

可看到回車的確是\n

總結:雖然不同的回車換行控制符在不同的系統、不同的軟體下顯示可能正常、可能不正常。。。但至少證明了這個事實:3類系統的確採用了相應的控制字元或字元組合來實現的回車換行。

回車 n和換行 r的區別

回車是將游標移動到當前行開頭,換行是另起一行。本文 阮一峰老師12年前的一篇文章,阮老師的文章總是那麼清爽,通俗易懂。今天,我總算搞清楚 回車 carriage return 和 換行 line feed 這兩個概念的來歷和區別了。在計算機還沒有出現之前,有一種叫做電傳打字機 teletype mo...

回車( r)和換行( n )的區別

先說說他們的由來 在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決...

不同系統下的換行符

那麼,到底為什麼會出現這個提示的呢?檔案格式區別 我們先看看這三個者有何區別。很久以前,人們用老式的電傳打字機作為輸入裝置,它使用 兩個字元來另起新行。乙個字元把滑動架移回首位 稱為回車,另乙個字元把紙上移一行 稱為換行,當計算機問世後,由於儲存器曾經非常昂貴。有些人就認定沒必要用兩個字元來表示行尾...