ASCII編碼與Unicode編碼

下文將爲大家介紹關於ASCII編碼與Unicode編碼,歡迎學習!

ASCII編碼與Unicode編碼

  ASCII碼

我們知道,一個二進制位(Bit)有0、1兩種狀態,一個字節(Byte)有8個二進制位,有256種狀態,每種狀態對應一個符號,就是256個符號,從00000000到11111111。

計算機誕生於美國,早期的計算機使用者大多使用英文,上世紀60年代,美國製定了一套英文字符與二進制位的對應關係,稱爲ASCII碼,沿用至今。

ASCII碼規定了128個英文字符與二進制的對應關係,佔用一個字節(實際上只佔用了一個字節的後面7位,最前面1位統一規定爲0)。例如,字母 a 的的ASCII碼爲 01100001,那麼你暫時可以理解爲字母 a 存儲到內存之前會被轉換爲 01100001,讀取時遇到 01100001 也會轉換爲 a。

  Unicode編碼

隨着計算機的流行,使用計算機的人越來越多,不僅限於美國,整個世界都在使用,這個時候ASCII編碼的問題就凸現出來了。

ASCII編碼只佔用1個字節,最多隻能表示256個字符,我大中華區10萬漢字怎麼表示,日語韓語拉丁語怎麼表示?所以90年代又制定了一套新的規範,將全世界範圍內的字符統一使用一種方式在計算機中表示,這就是Unicode編碼(Unique Code),也稱統一碼、萬國碼。

Unicode 是一個很大的集合,現在的規模可以容納100多萬個符號,每個符號的對應的二進制都不一樣。Unicode 規定可以使用多個字節表示一個字符,例如 a 的編碼爲 01100001,一個字節就夠了,”好“的編碼爲 01011001 01111101,需要兩個字節。

爲了兼容ASCII,Unicode 規定前0~127個字符與ASCII是一樣的,不一樣的只是128~255的這一段。

  相關閱讀》》在Linux下運行C語言程序

  Gedit

Gedit是一個簡單實用的文本編輯器,擁有漂亮的界面,支持語法高亮,比 Vim 更易上手。本教程將Gedit作爲C代碼編輯器。

  Gedit的安裝

sudo apt-add-repository ppa:ubuntu-on-rails/ppa //添加ubuntu的.軟件源

sudo apt-get update //更新軟件列表

sudo apt-get install gedit-gmate //安裝

在當前目錄下創建一個C源文件並打開:

touch test.c

gedit test.c

可以看到gedit的窗口,輸入:

#include#includeint main(){ printf("Hello,Linux.n"); exit(0);}

  gedit 窗口截圖

注意:Gedit支持多種語言的高亮顯示,一般情況下能夠自動識別語言,如果識別錯誤,請在“編輯->高亮模式“下選擇C。

  GCC

Linux下使用最廣泛的C/C++編譯器是GCC,大多數的Linux發行版本都默認安裝,不管是開發人員還是初學者,一般都將GCC作爲Linux下首選的編譯工具。本教程毫不猶豫地使用GCC來編譯C程序。

保存文件後退出,打開終端並 cd 到當前目錄,輸入下面的命令:

  gcc test.c -o test

可以直接將C代碼編譯鏈接爲可執行文件。

可以看到在當前目錄下多出一個文件 test,這就是可執行文件。不像Windows,Linux不以文件後綴來區分可執行文件,Linux下的可執行文件後綴理論上是可以任意更改的。

當然,也可以分步編譯:

  1) 預處理

gcc -E test.c -o test.i

在當前目錄下會多出一個預處理結果文件 test.i,打開 test.i 可以看到,在 test.c 的基礎上把stdio.h和stdlib.h的內容插進去了。

  2) 編譯爲彙編代碼

gcc -S test.i -o test.s

其中-S參數是在編譯完成後退出,-o爲指定文件名。

  3) 彙編爲目標文件

  gcc -c test.s -o test.o

.o就是目標文件。目標文件與可執行文件類似,都是機器能夠識別的可執行代碼,但是由於還沒有鏈接,結構會稍有不同。

3) 鏈接並生成可執行文件

  gcc test.o -o test

如果有多個源文件,可以這樣來編譯:

gcc -c test1.c -o test1.o

gcc -c test2.c -o test2.o

gcc test1.o test2.o -o test

注意:如果不指定文件名,GCC會生成名爲的文件,文件只是爲了區分編譯後的文件,Linux下並沒有標準的可執行文件後綴名,一般可執行文件都沒有後綴名。

編譯後生成的test文件就是程序了,運行它:

  ./test

如果沒有運行權限,可以使用sudo命令來增加權限(注意要在Linux的分區下):

  sudo cdmod test 777

對於程序的檢錯,我們可以用-pedantic、-Wall、-Werror選項:

-pedantic選項能夠幫助程序員發現一些不符合 ANSI/ISO C標準的代碼(並不是全部);

-Wall可以讓gcc顯示警告信息;

-Werror可以讓gcc在編譯中遇到錯誤時停止繼續。

這3個選項都是非常有用的。