計算機基礎方面的知識,對于一些非科班出身的同學來講,一直是他們心中的痛,而對于科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關于計算機基礎的課程很多,内容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特别地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。
有鑒于此,本系列文章将帶你更快的補足編程必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、操作系統、計算機網絡,這些都是大學計算機課程裡面最重要的内容。文章對這些内容做了提煉和總結,摒棄了作為程序員不需要掌握的知識。
目的是:
- 幫助大家形成計算機知識的結構體系
- 幫助大家理解計算機底層原理
- 幫助大家在工作實踐中借鑒其中的優秀設計
本篇是計算機組成原理之計算機的字符與編碼集。
歡迎關注、轉發、收藏、評論
字符編碼集的曆史ASCII碼
對于ASCII碼,相信大家在平時的學習、工作中都有所了解。
ASCII碼,英文全稱為:American Standard Code for Information Interchange,翻譯過來就是:美國信息交換标準代碼,是我們平常常用的一種編碼。那它是怎麼來的呢?
部分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編碼。
,