Convert.ToString("16进制的数据");

解决方案 »

  1.   

    ??这串16进制的数据可能是字符?
    这串数据本来就是string形式的?
    如果是int或者long之类的数据类型的话,自己写函数对数据取16的模,作为个位。再把原数据整除16以后再对16取模,作为十位。以此类推。
    如果这串数据本来就是string的话,如果原来的写法就是16进制的,去掉无关的字符就可以了。如果是其他进制的,就先自己识别转化为int型的,再按上面的说法转换成字符串。
      

  2.   

    if (this.cmb_change.SelectedIndex == 0)
    {
    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进制转换回来,对吗?
    怎么转换不回来呢?
      

  3.   

    Convert.ToString("X");
    或Convert.ToString("x");
      

  4.   

    格式说明符 名称 说明 
    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”。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。只有整型才支持此格式。 
      

  5.   

    你的意思是转换成类似这样的字符串吧?FF 09 9C AC ...
    先把字符串变成字节数组,然后对于字节数组里的每一字节,求出高低4字节的值,根据结果决定如何显示。
      

  6.   

    试试下面的。。哈。。16进制转换成字符串:
    String b = String.Parse("AB", System.Globalization.NumberStyles.HexNumber)
    最后得到的 b 的值是 "171"。
      

  7.   

    16进制转换成整数:
    Int b= Int.Parse("AB", System.Globalization.NumberStyles.HexNumber)
    最后得到的 b 的值是 171。
      

  8.   

    不好意思了,可能是别人说的有问题,我又确认了一下他所说的应该是,字符〈-〉16进制ascii