C 中的編碼實驗

2021-06-02 14:31:27 字數 1292 閱讀 9071

在c#中,預設使用unicode碼,因此乙個char佔2個byte

實驗1:通過asciiencoding類進行轉換char和byte

string name = "xuwei";

byte bname = asciiencoding.ascii.getbytes(name.tochararray());

int nbytes=asciiencoding.ascii.getbytecount(name.tochararray());

單步執行,檢視結果如下:

bname

[0]: 120

[1]: 117

[2]: 119

[3]: 101

[4]: 105

nbytes

1個char只占用了1個byte

實驗2:通過marshal轉換char和byte

string name = "xuwei";

intptr pname = marshal.allochglobal(10);

marshal.copy(name.tochararray(), 0, pname, name.length);

byte bname = new byte[10];

marshal.copy(pname, bname, 0, 10);

單步執行,檢視結果如下:

bname

[0]: 120

[1]: 0

[2]: 117

[3]: 0

[4]: 119

[5]: 0

[6]: 101

[7]: 0

[8]: 105

[9]: 0

結論1:

可見,同樣是將char轉為byte型,使用不同的方法,但是出現了不同的結果

實驗1和實驗2是編碼英文的,實驗3和4編碼中文 「徐薇」,其餘**相同,不重複

實驗3:

用asciiencoding類轉換

結果為:

[0]: 63

[1]: 63

不是太清楚,難道是出錯的標示?不可能只轉成2個位元組的

實驗4:

用marshal轉換

結果為:

[0]: 144

[1]: 95

[2]: 135

[3]: 133

[4]: 16

[5]: 33

[6]: 224

[7]: 30

[8]: 118

[9]: 4

C語言實驗 字元編碼

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

C 中的編碼轉換

好長時間沒有寫編碼轉換.今天寫了下特地放上來供大家以後用到就不用去找了.將乙個字串轉換成unicode型別的base64編碼的字串如下 convert.tobase64string encoding.unicode.getbytes unicodestring 紅色標明的是還可以轉換bigendia...

實驗一 算數編碼實驗

一 實驗目的 掌握算數編碼原理。二 實驗內容 利用matlab 編寫程式實現算數編碼,包括 1 對檔案符號進行概率統計,生成編碼表 2 對檔案進行壓縮編碼 3 選做 對檔案進行解壓縮,比較原始資料和解壓後的資料之間是否有損耗。四 實驗原理 算術編碼的編碼物件是一則訊息或乙個字串行,其編碼思路是將該訊...