当前位置:编程学习 > C#/ASP.NET >>

把C++函数转换成C#函数。。急等!

void calculate_wepkey(const unsigned cha* h,char *w)
        {
            int i=0,j=0;
            unsigned char t=0;
            unsigned char h_ca[13];
            unsigned char h_add=0;
            for ( j = 0; j < 12; j++)
            {
                h_cal[j] = h[j];
                h_add += h[j];
            }
            h_cal[12] = h_add;
                for (j = 0; j < 13; j++)
                {
                    for (int i = 0; i < 13; i++)
                    {
                        t^=(h_cal[j]&(h_cal[i]<<((i%2)?1:3)));
                    }
                    w[j] = proc_eyeable_ch(t ^ (~h_cal[12 - j]));
                }
        } --------------------编程问答-------------------- 怎么还没有人来帮忙啊 --------------------编程问答-------------------- 自己顶。。。 --------------------编程问答--------------------
byte[] h_cal = null;
public byte proc_eyeable_ch(int n) { return 0; }
void calculate_wepkey(byte[] h, byte[] w)
{
    int i = 0, j = 0;
    int t = 0;
    byte[] h_ca = new byte[13];
    byte h_add = 0;
    for (j = 0; j < 12; j++)
    {
        h_cal[j] = h[j];
        h_add += h[j];
    }
    h_cal[12] = h_add;
    for (j = 0; j < 13; j++)
    {
        for (i = 0; i < 13; i++)
        {
            t ^= (h_cal[j] & (h_cal[i] << ((i % 2 != 0) ? 1 : 3)));
        }
        w[j] = proc_eyeable_ch(t ^ (~h_cal[12 - j]));
    }
}


语法上翻译就这样了。但你有些内容没贴,我不知道你实际意图,未必能达到你要求。如果不符合,你贴完整你代码,包括用到的全局变量定义或是函数。 --------------------编程问答--------------------
引用 3 楼 wuyazhe 的回复:
C# code
byte[] h_cal = null;
public byte proc_eyeable_ch(int n) { return 0; }
void calculate_wepkey(byte[] h, byte[] w)
{
    int i = 0, j = 0;
    int t = 0;
    byte[] h_ca = new byte[13];
 ……



还要用到这个函数啊、。。。

  private char proc_eyeable_ch(char ch)
        {
            if(0x30>ch)
            {
                return (ch%10)+0x30;
            }else if(0x39<ch&&0x41>ch){
                return ch - 7;
            }else if(0x5A<ch&&0x61>ch){
                return ch - 6;
            }else if(0x7A<ch){
                return proc_eyeable_ch(ch-0x7A);
            }
            return ch;
        }


--------------------编程问答-------------------- 你提问,能尽量的描述清晰你的问题么?你是最了解你问题的人,不要让别人反复的追问你条件?3楼给你的回复仔细看。还缺什么贴全。 --------------------编程问答-------------------- 哦,谢谢大哥啊。

我的意思是,calculate_wepkey函数传一个字符串,而后面的参数是返回的值。就行啦。

就是这个意思 --------------------编程问答-------------------- --------------------编程问答-------------------- 顶一下 有全面的吗
--------------------编程问答-------------------- 全面的代码是这个。。。

void calculate_wepkey(const unsigned cha* h,char *w)
  {
  int i=0,j=0;
  unsigned char t=0;
  unsigned char h_ca[13];
  unsigned char h_add=0;
  for ( j = 0; j < 12; j++)
  {
  h_cal[j] = h[j];
  h_add += h[j];
  }
  h_cal[12] = h_add;
  for (j = 0; j < 13; j++)
  {
  for (int i = 0; i < 13; i++)
  {
  t^=(h_cal[j]&(h_cal[i]<<((i%2)?1:3)));
  }
  w[j] = proc_eyeable_ch(t ^ (~h_cal[12 - j]));
  }
  }


private char proc_eyeable_ch(char ch)
  {
  if(0x30>ch)
  {
  return (ch%10)+0x30;
  }else if(0x39<ch&&0x41>ch){
  return ch - 7;
  }else if(0x5A<ch&&0x61>ch){
  return ch - 6;
  }else if(0x7A<ch){
  return proc_eyeable_ch(ch-0x7A);
  }
  return ch;
  }

我想转为C#    第一个函数  传一个string类型的h,返回一个string 类型的W  谁能帮我转一下啊??




--------------------编程问答--------------------
string calculate_wepkey(string h)
{
    char[] w = new char[13];
    int i=0,j=0;
    byte t = 0;
    byte[] h_ca = new byte[13];
    byte h_add = 0;
    for (int j = 0; j < 12; j++)
    {
h_cal[j] = h[j];
   h_add += h[j];
    }
    h_cal[12] = h_add;
    for (j = 0; j < 13; j++)
    {
      for (int i = 0; i < 13; i++)
      {
          t^=(h_cal[j]&(h_cal[i]<<((i%2)?1:3)));
      }
      w[j] = proc_eyeable_ch(t ^ (~h_cal[12 - j]));
    }
    return new string(w);
}


private char proc_eyeable_ch(char ch)
{
  if(0x30>ch)
  {
  return (ch%10)+0x30;
  }else if(0x39<ch&&0x41>ch){
  return ch - 7;
  }else if(0x5A<ch&&0x61>ch){
  return ch - 6;
  }else if(0x7A<ch){
  return proc_eyeable_ch(ch-0x7A);
  }
  return ch;
}
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,