把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]));
}
}
语法上翻译就这样了。但你有些内容没贴,我不知道你实际意图,未必能达到你要求。如果不符合,你贴完整你代码,包括用到的全局变量定义或是函数。 --------------------编程问答--------------------
还要用到这个函数啊、。。。
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#