回 帖 发 新 帖 刷新版面

主题:[求助]下面这个程序如何实现?

byte[] buffer1 = Encoding.get_Default().GetBytes(serial);
      string text1 = "";
      int num1 = 0;
      for (int num2 = 1; num2 < buffer1.Length; num2++)
      {
            num1 = int.Parse(buffer1[num2 - 1].ToString()) + int.Parse(buffer1[num2].ToString());
            text1 = text1 + Convert.ToString(num1, 0x10).ToUpper();
      }
在最后的两句中,字符中的前后两个字符相加,请问是ASCII相加吗,如是ASCII相加,那么得到的和对应的字符又怎样转换成十六制的字母呢?如9+f    请各位高手指点一二,我是C#的超级菜鸟.望能详细讲解,本人不胜感激!

回复列表 (共4个回复)

沙发

不是的,用int.parse()时如果里面的字符串不是数字的字符串的话是会产生异常的!

板凳

将字符转换成十六制的字母是convert.ToString()的作用(()里面是格式转换)

3 楼

[quote]不是的,用int.parse()时如果里面的字符串不是数字的字符串的话是会产生异常的!
[/quote]
public static string SerialEncrypt(string serial)
{
      byte[] buffer1 = Encoding.get_Default().GetBytes(serial);
      string text1 = "";
      int num1 = 0;
      for (int num2 = 1; num2 < buffer1.Length; num2++)
      {
            num1 = int.Parse(buffer1[num2 - 1].ToString()) + int.Parse(buffer1[num2].ToString());
            text1 = text1 + Convert.ToString(num1, 0x10).ToUpper();
      }
      return text1;
}

请问上面的程序本身有错吗?好象byte[] buffer1中得到的确实是字符串呀!只不过是把字符串拿出来一个一个的计算吧了!但是怎么计算,我就不知道了.

4 楼

不是!是字符串相加。

我来回复

您尚未登录,请登录后再回复。点此登录或注册