'計算機組成原理:計算機的字符與編碼集'

電腦 歷史 大學 韓國 文章 程序員 程序員技術之瞳 2019-09-16
"

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。

有鑑於此,本系列文章將帶你更快的補足編程必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、操作系統、計算機網絡,這些都是大學計算機課程裡面最重要的內容。文章對這些內容做了提煉和總結,摒棄了作為程序員不需要掌握的知識。

目的是:

  • 幫助大家形成計算機知識的結構體系
  • 幫助大家理解計算機底層原理
  • 幫助大家在工作實踐中借鑑其中的優秀設計

本篇是計算機組成原理之計算機的字符與編碼集。

歡迎關注、轉發、收藏、評論

字符編碼集的歷史

ASCII碼

對於ASCII碼,相信大家在平時的學習、工作中都有所瞭解。

ASCII碼,英文全稱為:American Standard Code for Information Interchange,翻譯過來就是:美國信息交換標準代碼,是我們平常常用的一種編碼。那它是怎麼來的呢?

在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),假如,對於字符a,比爾蓋茨想用0001來表示,而喬布斯想用0010來表示,那麼他們在溝通交流的時候誰都無法理解對方的語言。因此,為了計算機能夠互相通信而不造成混亂,就必須使用相同的編碼規則,於是美國有關的標準化組織就出臺了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示。

標準ASCII碼也叫基礎ASCII碼,使用7個比特位來表示所有的大寫和小寫字母,數字0到9、標點符號,以及在美式英語中使用的特殊控制字符,共定義了128(2的7次方)個字符。

下面我們通過一張表來了解部分ASCII碼。

"

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。

有鑑於此,本系列文章將帶你更快的補足編程必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、操作系統、計算機網絡,這些都是大學計算機課程裡面最重要的內容。文章對這些內容做了提煉和總結,摒棄了作為程序員不需要掌握的知識。

目的是:

  • 幫助大家形成計算機知識的結構體系
  • 幫助大家理解計算機底層原理
  • 幫助大家在工作實踐中借鑑其中的優秀設計

本篇是計算機組成原理之計算機的字符與編碼集。

歡迎關注、轉發、收藏、評論

字符編碼集的歷史

ASCII碼

對於ASCII碼,相信大家在平時的學習、工作中都有所瞭解。

ASCII碼,英文全稱為:American Standard Code for Information Interchange,翻譯過來就是:美國信息交換標準代碼,是我們平常常用的一種編碼。那它是怎麼來的呢?

在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),假如,對於字符a,比爾蓋茨想用0001來表示,而喬布斯想用0010來表示,那麼他們在溝通交流的時候誰都無法理解對方的語言。因此,為了計算機能夠互相通信而不造成混亂,就必須使用相同的編碼規則,於是美國有關的標準化組織就出臺了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示。

標準ASCII碼也叫基礎ASCII碼,使用7個比特位來表示所有的大寫和小寫字母,數字0到9、標點符號,以及在美式英語中使用的特殊控制字符,共定義了128(2的7次方)個字符。

下面我們通過一張表來了解部分ASCII碼。

計算機組成原理:計算機的字符與編碼集

部分ASCII碼

表中列出了常見字符的ASCII碼,如:字母a表示為01100001、字符(不是數字哦~)1表示為00110001... ...

在計算機的早期,ASCII碼就能滿足特定人群的使用了,但是,隨著計算機的發展以及計算機的普遍性,ASCII碼逐漸不能滿足人們的使用需求,比如一些數學符號以及一些國家的符號都無法表示。於是,人們對ASCII碼進行了擴充,用8個比特位來表示一個字符,這就是拓展的ASCII碼,拓展的ASCII碼能表示256個字符。

Extended ASCII碼

如下圖,是拓展的ASCII碼錶。

"

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。

有鑑於此,本系列文章將帶你更快的補足編程必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、操作系統、計算機網絡,這些都是大學計算機課程裡面最重要的內容。文章對這些內容做了提煉和總結,摒棄了作為程序員不需要掌握的知識。

目的是:

  • 幫助大家形成計算機知識的結構體系
  • 幫助大家理解計算機底層原理
  • 幫助大家在工作實踐中借鑑其中的優秀設計

本篇是計算機組成原理之計算機的字符與編碼集。

歡迎關注、轉發、收藏、評論

字符編碼集的歷史

ASCII碼

對於ASCII碼,相信大家在平時的學習、工作中都有所瞭解。

ASCII碼,英文全稱為:American Standard Code for Information Interchange,翻譯過來就是:美國信息交換標準代碼,是我們平常常用的一種編碼。那它是怎麼來的呢?

在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),假如,對於字符a,比爾蓋茨想用0001來表示,而喬布斯想用0010來表示,那麼他們在溝通交流的時候誰都無法理解對方的語言。因此,為了計算機能夠互相通信而不造成混亂,就必須使用相同的編碼規則,於是美國有關的標準化組織就出臺了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示。

標準ASCII碼也叫基礎ASCII碼,使用7個比特位來表示所有的大寫和小寫字母,數字0到9、標點符號,以及在美式英語中使用的特殊控制字符,共定義了128(2的7次方)個字符。

下面我們通過一張表來了解部分ASCII碼。

計算機組成原理:計算機的字符與編碼集

部分ASCII碼

表中列出了常見字符的ASCII碼,如:字母a表示為01100001、字符(不是數字哦~)1表示為00110001... ...

在計算機的早期,ASCII碼就能滿足特定人群的使用了,但是,隨著計算機的發展以及計算機的普遍性,ASCII碼逐漸不能滿足人們的使用需求,比如一些數學符號以及一些國家的符號都無法表示。於是,人們對ASCII碼進行了擴充,用8個比特位來表示一個字符,這就是拓展的ASCII碼,拓展的ASCII碼能表示256個字符。

Extended ASCII碼

如下圖,是拓展的ASCII碼錶。

計算機組成原理:計算機的字符與編碼集

拓展的ASCII碼

這裡麵包括了常見的數學運算符、帶音標的歐洲字符以及其他常用符號、表格符號等。使用了拓展的ASCII碼極大的補充了原來的碼錶,使得計算機能表達的內容越來越豐富。

字符編碼集的國際化

隨著計算機的進一步發展,越來越多的國家加入到了使用計算機的行列中,對字符編碼集的要求也越來越高。對於歐洲、中亞、東亞、拉丁美洲等國家來說,它們的語言豐富多樣,體系不一樣,不以有限字符為組合,尤其以中國、韓國、日本等的語言最為複雜,ASCII碼錶根本無法表達這些語言,這就迫切需要使用新的編碼集,也就是字符編碼集的國際化。

中文編碼集

GB2312

GB2312是1980年制定的中國漢字編碼國家標準,是我國最早最完備的一個編碼集,一共收錄了7445個字符,包括6763個漢字和682個其他字符,一個漢字佔用兩個字節。

GBK

由於GB2312不符合國際標準,中國的科學家在1995年推出了第二套完備的編碼集——GBK,GBK向下兼容GB2312,向上支持國際ISO標準,收錄了21003個漢字,支持全部中日韓漢字。

GB2312和GBK都是比較完備的編碼集,但是,它們只是一個本地化的編碼,在中國使用是沒問題的,但要跨國使用就有問題了。舉個例子,一箇中國人開發了一個網站,一個外國友人訪問了這個網站,如果他們本地沒有安裝GB2312編碼集或GBK編碼集的話, 那麼他們在訪問網站網頁的時候看到的會是亂碼。因此,就需要一個全球統一的編碼規範。

Unicode

為了統一所有文字的編碼,Unicode應運而生。Unicode是一個兼容全球的字符集,定義了世界通用的符號集,可以表達全世界所有的文字和字符。Unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。

我們平時用的UTF-8是其中一個編碼規則,它以字節為單位對Unicode進行編碼,平常寫代碼的時候都是推薦使用UTF-8編碼。中文Windows操作系統默認使用GBK編碼,因此,使用IDE編程時通常要設置成UTF-8編碼。

"

相關推薦

推薦中...