計算機基礎方面的知識,對於一些非科班出身的同窗來說,一直是他們心中的痛,而對於科班出身的同窗,不少同窗在工做以後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程不少,內容繁雜,但不管是相關書籍仍是大學課程,都有點脫離工做。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。程序員
有鑑於此,本系列文章將帶你更快的補足編程必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、操做系統、計算機網絡,這些都是大學計算機課程裏面最重要的內容。文章對這些內容作了提煉和總結,摒棄了做爲程序員不須要掌握的知識。編程
目的是:網絡
本篇是計算機組成原理之計算機的字符與編碼集。學習
歡迎關注、轉發、收藏、評論網站
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到九、標點符號,以及在美式英語中使用的特殊控制字符,共定義了128(2的7次方)個字符。設計
下面咱們經過一張表來了解部分ASCII碼。
表中列出了常見字符的ASCII碼,如:字母a表示爲0110000一、字符(不是數字哦~)1表示爲00110001... ...
在計算機的早期,ASCII碼就能知足特定人羣的使用了,可是,隨着計算機的發展以及計算機的廣泛性,ASCII碼逐漸不能知足人們的使用需求,好比一些數學符號以及一些國家的符號都沒法表示。因而,人們對ASCII碼進行了擴充,用8個比特位來表示一個字符,這就是拓展的ASCII碼,拓展的ASCII碼能表示256個字符。
Extended 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編碼。