綜合 字元編碼

2021-04-07 08:51:20 字數 2306 閱讀 7091

編碼指不同國家的語言在計算機中的一種儲存和解釋規範。

- ascii(american standard code for information interchange):使用7 bits表示乙個字元,總共128個。

-- iso-8859-1:將ascii擴充套件到0~255後的字符集。

- ansi(american national institute)字符集:ascii字符集,以及由此派生並相容的字符集,正式的名稱為mbcs(multi-byte chactacter system)。如gb2312,gbk。

-- gb2312:簡體中文字符集。它的第乙個位元組為128-255。系統可以據此判斷,若第乙個位元組大於127,則把與該位元組後緊接著的乙個位元組結合起來共兩個位元組組成乙個中文字元。ascii是其子集。

-- gbk:gbk是現階段windows及其他一些中文作業系統的預設字符集。它包含2萬多個字元,除了保持和gb2312相容外,還包含正體中文本,日文字元和朝鮮字元。值得注意的是gbk只是乙個規範而不是國家標準,新的國家標準是gb18030-2000,它是比gbk包含字元更多的字符集。

-- big5:台灣地區所使用的正體中文字符集,編碼方式與gb2312類似。

- unicode(utf-16: ucs transformation format):固定使用16 bits(兩個位元組)表示乙個字元,總共65536個。

-- utf-8:為了雙位元組的unicode能夠在現存的處理單位元組的系統上正確傳輸設計。

ucs 字元u+0000 到u+007f (ascii) 被編碼為位元組0x00到0x7f (ascii 相容)。這意味著只包含7位ascii 字元的檔案在ascii和utf-8 兩種編碼方式下是一樣的。

所有》u+007f 的ucs 字元被編碼為乙個多個位元組的串,每個位元組都有標記位集。因此,ascii 位元組 (0x00-0x7f) 不可能作為任何其他字元的一部分。

表示非 ascii 字元的多位元組串的第乙個位元組總是在0xc0到0xfd 的範圍裡, 並指出這個字元包含多少個位元組。多位元組串的其餘位元組都在0x80到0xbf範圍裡。這使得重新同步非常容易,並使編碼無國界,且很少受丟失位元組的影響。

與unicode的對映關係如下:

unicode編碼(16進製制)     utf-8 位元組流(二進位制)

0000 - 007f         0******x

0080 - 07ff         110***xx 10******

0800 - ffff         1110***x 10****** 10******

附1:當乙個軟體開啟乙個文字時,它要做的第一件事是決定這個文字究竟是使用哪種字符集的哪種編碼儲存的。軟體一般採用三種方式來決定文字的字符集和編碼:檢測檔案頭標識;提示使用者選擇;根據一定的規則猜測。

最標準的途徑是檢測文字最開頭的幾個位元組,如下表:

ef bb bf       utf-8

fe ff              utf-16/ucs-2, little endian

ff fe              utf-16/ucs-2, big endian

ff fe 00 00  utf-32/ucs-4, little endian.

00 00 fe ff  utf-32/ucs-4, big-endian.

附2:big endian是指低位址存放最高有效位元組(msb: most significant byte),而little endian則是低位址存放最低有效位元組(lsb: least significant byte)。

[big endian]

低位址                                            高位址

----------------------------------------->

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     12     |      34    |     56      |     78    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

[little endian]

低位址                                            高位址

----------------------------------------->

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     78     |      56    |     34      |     12    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

FPGA綜合編碼

1 判決樹 在fpga中判斷使用if else語句以及case實現。a if else 是有特權的,類似於優先編碼 當兩個條件同時成立,僅判斷條件靠前的成立 所以當有特權條件時應該採用if else結構,對於並行的if條件語句其特權順序恰好與if else 相反。b case 語句常常 不總是 用在...

字元編碼 unicode編碼

1.ascii american standard code for information interchange 美國資訊交換標準 這是計算機上最早使用的通用的編碼方案。那個時候計算機還只是拉丁文本的專利,根本沒有想到現在計算機的發展勢頭,如果想到了,可能一開始就會使用unicode了。當時絕大...

A 字元編碼

請將一串長度為5的純字母文字譯成乙個密碼,密碼規律如下 用原來的字母後面的第4個字母代替原來的字母。如c用g代替 文字中不存在w w x x y y z z等字母 最後得到的文字即為密碼。輸入一串文字,長度固定為5。輸出對應的密碼。格式為 password is 密碼 input chinaoutp...