Convert.ToString("16进制的数据");
解决方案 »
- 关于C# Socket通信编程问题
- C#利用正则表达式提取动态文本指定位置的内容?
- System.InvalidCastException异常 FormatException
- 如何导出excel可以生成真正的xlsx2007版本?谢谢!
- C#中使用combox控件保存 key/value的问题
- 关键数据库搜索速度问题
- 在PetShop中,是怎么判断用户没有登陆的?
- datagrid
- 感觉《Beginning C#》被康博这群人翻译成了一堆垃圾
- 关于dataGrid1.SetDataBinding()的问题,在线
- 初学ADO.net,问一个困扰我的问题
- 如何获取Oracle数据库中的CLOB字段的值,为什么我得到的是乱码一堆,不管存入表中的是中文还是英文.
这串数据本来就是string形式的?
如果是int或者long之类的数据类型的话,自己写函数对数据取16的模,作为个位。再把原数据整除16以后再对16取模,作为十位。以此类推。
如果这串数据本来就是string的话,如果原来的写法就是16进制的,去掉无关的字符就可以了。如果是其他进制的,就先自己识别转化为int型的,再按上面的说法转换成字符串。
{
string msg = this.txt_chat.Text;
char[ ] cs = msg.ToCharArray();
string Hstr = null;
for (int l = 0; l< cs.Length; l++)
{
Hstr += ((int)cs[l]).ToString("X");
}
System.Console.WriteLine(Hstr);
this.txt_chat.Text = Hstr;
}
else
{
Int16 msg_16 = Int16.Parse(this.txt_chat.Text); try
{
string msg = Convert.ToString(msg_16,16);
this.txt_chat.Text = msg;
}
catch(Exception fe)
{
MessageBox.Show("The Format of Message is Error." + fe.ToString());
return;
}
}上面一段是把输入框中的数据转换成16进制,下面是把16进制转换回来,对吗?
怎么转换不回来呢?
或Convert.ToString("x");
C 或 c 货币 数字转换为表示货币金额的字符串。转换由用于格式化数字的 NumberFormatInfo 对象的货币格式信息控制。精度说明符指示所需的小数位数。如果省略精度说明符,则使用 NumberFormatInfo 给定的默认货币精度。 D 或 d 十进制 只有整型才支持此格式。数字转换为十进制数字 (0-9) 的字符串,如果数字为负,则前面加负号。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。 E 或 e 科学计数法(指数) 数字转换为“-d.ddd...E+ddd”或“-d.ddd...e+ddd”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。小数点前总有一个数字。精度说明符指示小数点后所需的位数。如果省略精度说明符,则使用默认值,即小数点后六位数字。格式说明符的大小写指示在指数前加前缀“E”还是“e”。指数总是由正号或负号以及最少三位数字组成。如果需要,用零填充指数以满足最少三位数字的要求。 F 或 f 固定点 数字转换为“-ddd.ddd...”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。精度说明符指示所需的小数位数。如果忽略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。 G 或 g 常规 数字转换为最紧凑的十进制形式,使用固定表示法或科学计数法。精度说明符确定结果字符串的有效位数。如果省略了精度说明符,则有效位数由所转换的数字的类型确定:
Int16 或 UInt16:5 位
Int32 或 UInt32:10 位
Int64 或 UInt64:19 位
Single:7 位
Double:15 位
Decimal:29 位
移除小数点后多余的零,结果字符串仅在需要时才包含小数点。 如果数字的指数(由“E”格式产生)小于有效位数且大于或等于 –4,则结果字符串使用固定点格式。否则,结果字符串使用科学计数法格式,格式说明符的大小写控制在格式前加前缀“E”还是“e”。
N 或 n 数字 数字转换为“-d,ddd,ddd.ddd...”格式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。小数点左边每三个数字之间插入一个千位分隔符。精度说明符指示所需的小数位数。如果忽略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。 P 或 p 百分比 数字转换为由 NumberFormatInfo.PercentNegativePattern 属性或 NumberFormatInfo.PercentPositivePattern 属性定义的、表示百分比的字符串。如果数字为负,则产生的字符串由 PercentNegativePattern 定义并以负号开头。已转换的数字乘以 100 以表示为百分比。精度说明符指示所需的小数位数。如果省略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。 R 或 r 往返行程 往返行程说明符保证转换为字符串的数值再次被分析为相同的数值。使用此说明符格式化数值时,首先用常规格式测试:Double 使用 15 位精度,Single 使用 7 位精度。如果此值被成功地分析为相同的数值,则使用常规格式说明符对其进行格式化。但是,如果此值未被成功地分析为相同的数值,则它这样格式化:Double 使用 17 位精度,Single 使用 9 位精度。虽然精度说明符可以追加到往返行程格式说明符,但它将被忽略。使用此说明符时,往返行程优先于精度。此格式仅受浮点型支持。 X 或 x 十六进制 数字转换为十六进制数字的字符串。格式说明符的大小写指示对大于 9 的十六进制数字使用大写字符还是小写字符。例如,使用“X”产生“ABCDEF”,使用“x”产生“abcdef”。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。只有整型才支持此格式。
先把字符串变成字节数组,然后对于字节数组里的每一字节,求出高低4字节的值,根据结果决定如何显示。
String b = String.Parse("AB", System.Globalization.NumberStyles.HexNumber)
最后得到的 b 的值是 "171"。
Int b= Int.Parse("AB", System.Globalization.NumberStyles.HexNumber)
最后得到的 b 的值是 171。