1樓:翲燚
字元編碼是將字元(中文、英文、數字等)對映到二進位制(或言byte,或言16進位制,都是不同的表現形式而已)。
這個對映是人為定義的,也是不唯一的,每一套對映都被稱為是一個字元編碼。字元的傳輸,都是要編碼-傳輸-解碼的過程,而常見的亂碼問題,實際上就是編碼和解碼所使用的字元編碼不相同所引發的。
常見的gb2312、utf8等,都是不相同的字元編碼。
將字串轉換到16進位制,只要先制定一個字元編碼轉化為byte。下面例項使用utf8轉換:
byte data = system.text.encoding.utf8.getbytes("中文english0123456789");
然後將byte轉換為十六進位制表示即可。.net只提供了byte到16進位制的方法,所以在這裡新寫了一個byte到16進位制的方法:
string hex(byte data)
return hex;}
2樓:然後去遠足
參考:using system;
using system.text;
public string convertstringtohex(string input, encoding encoding = null)
return output;
}public string converthextostring(string input, encoding encoding = null)
, stringsplitoptions.removeemptyentries);
byte bytes = new byte[chars.length];
for (int i = 0; i < chars.length; i++)
string output = encoding.getstring(bytes);
return output;}
3樓:style騎o川藏線
system.text.encoding.utf8.getstring()
c#如何將16進位制字串轉換為漢字?
4樓:匿名使用者
假定你輸入d0bbd0bb是在textbox1,結果要顯示在textbox2中,那就是
public static byte hexstringtobytearray(string s)
當你要轉換的時候即為
textbox2.text=encoding.getencoding("gb2312").
getstring(hexstringtobytearray(textbox1.text));
c#中數值轉換和16進位制運算問題?
5樓:匿名使用者
你是不是對convert.toint16()函式理解錯了,int aa = convert.toint16(a, 16);
是將字串a按16進位制的方式轉換成10進位制,故aa為76,bb同理。
所以**中的結果確實是按10進位制運算的。
需要追究c#是如何進行16進位制計算的嗎,在計算機中只有二進位制運算,只不過表現給人看的有八進位制、十進位制、十六進位制。
如果不進行處理任何數值處理的輸出都是十進位制int a = 0xa;
int b = 0x2;
console.writeline(a + b);
你將看到的是12而不是c。
6樓:乁
16進位制運算和
十進位制一樣,比如4c+33
4c+ 33 c+3 c就是12,12+3=15,那就是f,4+3=7
7f如果有進位那就和十進位制的做法一樣,比如 34+7f34+7f
b34+f,f從4那裡取1之後就可以進位,所以4就剩3,進位過去後3+7=10加上 進的那一位就是11,也就是b
7樓:歷又
c#不支援16進位制的運算,如果是用16進製表示的數字,會先轉換為10進位制數,再參與運算。如:int temp=0xf; temp為15;0xf+0x1,結果為16。
//16進位制資料
string a = "4c";
string b = "33";
////16進位制轉換為10進位制
int inta = convert.toint16(a, 16);
int intb = convert.toint16(b, 16);
int intc = inta + intb;
//10進位制轉換為16進位制
string stra = convert.tostring(inta, 16);
string strb = convert.tostring(intb, 16);
string strc = convert.tostring(intc, 16);
console.writeline(stra);//4c
console.writeline(strb);//33
console.writeline(strc);//7f
8樓:
convert.toint32(str); 將字元型轉化為整型
int i=15;
string s = convert.tostring(i,16); 將整型轉化為16進.(小寫)
string s = i.tostring("x"); 將整型轉化為16進.(大寫)
請問c#中如何將十六進位制數的字串轉化成十進位制數的字串
9樓:匿名使用者
convert.toint64(」9542098e「, 16);
試試看,我已經測試過了是可以的,樓主原來的32toint32溢位了,所以換成64就可以
希望對你有幫助。
10樓:匿名使用者
string str="0x9542098e";
uint a= convert.touint32(str, 16);
11樓:匿名使用者
convert.toint32("9542098e", 10);
試驗一下。
C語言字串問題,C語言字元陣列與字串問題
字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了...
c語言字串問題
首先字串定義是 char c 用指標 而不是char c 這樣是單個字元定義了。其次字串賦值要加上雙引號 即c 0326 最後輸出用s d 是整型輸出了。0362是8進位制數 以0開頭 轉化為十進位制是242。char 佔一個位元組 型別的範圍是 128 127,242超過了char的表達範圍。所以...
C語言字串問題
1全部char xx 50 80 是一個二維字元陣列,長度50 80個連續char空間。char tem 80 是一個一維字元陣列,長度80個連續char空間。c語言不存在字串變數型別,所有字串全部用 0結尾字元陣列表示。比如說 char a china 圖示為a0,a1,a2,a3,a4 c,h ...