对于一个数来说,它就是一个数,16进制或2进制只是它的表现形式。
int.ToString("X")
产生这个数的16进制表现字符串。
二进制的没有现成的,可以从16进制的串来产生一个。public string HexToBin(string hexStr)
{
string binStr = "";
for(int i=0; i < hexStr.Length; i++)
{
string s = hexStr.SubString(i, 1);
switch(s){
case "0": binStr += "0000"; break;
case "1": binStr += "0001"; break;
case "2": binStr += "0010"; break;
...
case "E": binStr += "1110"; break;
case "F": binStr += "1111"; break;
}
return binStr;
}
参考里的的VB源码吧
http://vbboshi.myrice.com/vbcode/code_18.htm
int.ToString("X")
产生这个数的16进制表现字符串。
二进制的没有现成的,可以从16进制的串来产生一个。public string HexToBin(string hexStr)
{
string binStr = "";
for(int i=0; i < hexStr.Length; i++)
{
string s = hexStr.SubString(i, 1);
switch(s){
case "0": binStr += "0000"; break;
case "1": binStr += "0001"; break;
case "2": binStr += "0010"; break;
...
case "E": binStr += "1110"; break;
case "F": binStr += "1111"; break;
}
return binStr;
}
参考里的的VB源码吧
http://vbboshi.myrice.com/vbcode/code_18.htm
转化为16进位的串为"966855395c5419dd8c01d06be908d06f9ac20399"的形式!
php中有函数bin2hex()可转换,c#好像没有,需要自己写个??
比如说
string s="謫彤B?>焌??搖Y腔"
byte [] buf=System.Text.Encoding.Default.GetBytes(s);
那么16进制字符串就是:
string sHex="";
for(int i=0;i<buf.Length;i++)
sHex+=i.ToString("X2");十进制和二进制的转换可以看看:
http://www.cnblogs.com/popcorn/archive/2004/06/09/14582.aspx
http://www.cnblogs.com/popcorn/archive/2004/06/09/14581.aspx
很容易改成C#的.
' / .- .
. .- .-
./ .--...
.-------- 0 .--
/ .......
' ..
'........ ----
. --..
. .---.. -
分 o . ' -.
分 / '
/ ' ' '
\-分--/....... . ' ' ' '
\ __/ - - -' ' ' '
' ' ' '
o ' ' ' '
' ' '
-..'.----------.
I ----------
/////////.
你那代码转换出来的字符串怎么不是966855395c5419dd8c01d06be908d06f9ac20399,
不能还原呀?
int i = 100; string hex = i.ToString("X"); //转成16进制
i = Convert.ToInt32(hex, 16); //转回10进制
string bin = Convert.ToString(i, 2); //转成2进制
i = Convert.ToInt32(bin, 2); //转回10进制
}