在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 選做 對檔案進行解壓縮,比較原始資料和解壓後的資料之間是否有損耗。四 實驗原理 算術編碼的編碼物件是一則訊息或乙個字串行,其編碼思路是將該訊...