1. 程式人生 > >程式設計必備基礎知識|計算機組成原理篇(06):計算機的字元與編碼集

程式設計必備基礎知識|計算機組成原理篇(06):計算機的字元與編碼集

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

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

目的是:

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

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

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

字元編碼集的歷史

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碼,如:字母a表示為01100001、字元(不是數字哦~)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編碼。

END

相關推薦

程式設計必備基礎知識|計算機組成原理(06)計算機字元編碼

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

程式設計必備基礎知識|計算機組成原理(02)計算機的分類

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

程式設計必備基礎知識|計算機組成原理(03)計算機的體系結構

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

程式設計必備基礎知識|計算機組成原理(07)計算機的匯流排

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

程式設計必備基礎知識|計算機組成原理(08)儲存器

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

程式設計必備基礎知識|計算機組成原理(09)CPU的控制器和運算器

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

計算機組成原理——匯流排補充地址匯流排、資料匯流排、定址能力、字長及cpu位數等概念之間的關係

地址匯流排決定了CPU的定址能力;資料匯流排的寬度與字長及CPU位數一致。 詳細解釋見下文: 1.地址匯流排與定址能力 要存取資料或指令就要知道資料或指令存放的位置,地址暫存器儲存的就是CPU當前要存取的資料或指令的地址,該地址是由地址匯流排傳輸到地址暫存器上的。

計算機組成原理】第一章 計算機系統概論

1.1 計算機系統簡介 1.1.1 計算機的軟硬體概念 計算機組成概覽: 1.1.2 計算機系統的層次結構 物理角度: 程式設計師角度: 系統複雜性管理的方法之一:抽象 區別兩點: 計算

計算機組成原理學習筆記1.計算機系統概論

課程:《計算機組成原理》哈工大     計算機系統: 硬體:計算機主體,如主機,外設等 軟體:具有各類特殊功能的資訊(程式)   軟體: 系統軟體:用來管理整個計算機系統 語言處理程式 作業系統 服務性程式 資料庫管理系統 網路軟體

計算機組成原理(6)---計算機運算方法(未完成)

導讀 1.無符號數與有符號數 2.數的定點表示和浮點表示 3.定點運算(移位,加減,乘除) 無符號數與有符號數 整數原碼 +1110 -> 0,1110 -1110->1,1110 小數原碼 +0.1101->0.1101 -0.1101->1.11

計算機組成原理知識點(第一章:計算機系統概論)

** 第一章:計算機系統概論 ** 1.計算機軟硬體概念 軟體: 由人們事先編織的具有各類特殊功能的程式組成. 分為兩大類: 系統軟體和應用軟體. 系統軟體就是使系統資源得到合理排程, 高

計算機組成原理(1)-計算機系統概述

馮·諾依曼設計思想 馮·諾依曼設計思想可以簡要地概括為以下三點: (1) 計算機應包括運算器、儲存器、控制器、輸入和輸出裝置五大基本部件。 (2) 計算機內部應採用二進位制來表示指令和資料。每條指令一般具有一個操作碼和一個地址碼。其中,操作碼錶示運算性質,地址碼指出運算元在

計算機組成原理 運算方法定點數加減

定點數加減 目前計算機普遍使用補碼實現定點數的加減運算。 1.加減運算方法: 根據補碼的設計規則,任意的絕對值相同的負數和正數,負數是正數的反碼加1,所以絕對值相同的負數和正數相加,剛剛好結果就是為全0(最高位進一位,拋棄)。然後對照下補碼錶,可以發現基於

計算機組成原理實驗二RAM實驗

一、實驗專案名稱:RAM實驗 二、實驗目的: 瞭解半導體靜態隨機讀寫儲存器RAM的工作原理及其使用方法。 掌握半導體儲存器的字、位擴充套件技術。 三、實驗內容 ◆採用1K x 4 的晶片,構成1K x 8的儲存器。 ◆選擇五個不連續的存貯單元地址,分別存入不同內容

計算機組成原理基礎知識-總線

異步 數據信息 兩個 定時 共享 信號線 位數 控制線 線性 二.系統總線 --計算機系統五大部件互連的方式有兩種:   分散連接:各部件之間使用單獨的連線   總線連接:將各部件連到一組公共信息傳輸線上 --總線:是連接多個部件的信息傳輸線,是各部件共享的傳輸介質   特

計算機組成原理基礎知識-概述

通過 div post 分享 應用軟件 特定 二進制表示 中間 inf 一、概述 --計算機系統由“硬件”和“軟件”兩大部分組成。 --計算機的軟件又可以分為兩大類--系統軟件和應用軟件(又稱系統程序和應用程序)。 --多級層次結構的計算機系統:    -- 馮-諾依

計算機組成原理基礎知識-運算方法

移位 配置 減法 一個 乘除 求反 計算 機器數 邏輯 五.計算機的運算方法 --在計算機中參與運算的數有兩大類:無符號數和有符號數   無符號數:沒有符號的數   有符號數     機器數與真值:機器中:0表示正,1表示負     原碼表示法:把真值的正負用01表示   

計算機組成原理基礎知識-存儲器

cache 性能 ram 問題 和數 刷新 方式 周期表 inf 三.存儲器 --存儲器是計算機系統的記憶設備,用來存放程序和數據 --存儲器的分類 存儲器速度、容量和位價的關系 --主存儲器   -主存的技術指標:主要是存儲容量存儲速度     存儲容量:主存能存放的

Python基礎班---第一部分(基礎)---Python基礎知識---計算機組成原理

什麼是計算機? 計算機(computer)俗稱電腦,是現代一種用於高速計算的電子機器,可以進行數值計算,又可以進行邏輯判斷,還具有儲存記憶功能,且能夠按照程式的執行,自動、高速處理資料。 計算機是由什麼組成的? 一個完整的計算機系統,是由硬體系統和軟體系統兩大部分組成的。 一、硬體系統: 主要分為主

計算機組成原理基礎知識總結

 計算機概述 計算機的基本組成: 儲存器:     實現記憶功能的部件用來存放計算程式及參與運算的各種資料 運算器:     負責資料的算術運算和邏輯運算即資料的加工處理 控制器:     負責對程式規定的控制資訊進行分析,控制並協調輸入,輸出操作或記憶體訪問 輸入