麻烦介绍下void send()等函数

代码如下:

unsigned char32 Slave_adr[8];
unsigned char32 Slave_Send_adr[73];
void bit_set(int32 x,int y)
{ int32 temp;
temp=1;
temp=temp<<y;
x=x|temp;
}
void bit_clear(int32 x,int y)
{ int32 temp;
temp=1;
temp=temp<<y;
temp=~temp;
x=x&temp;
}
int1 bit_test(int32 x,int y)
{ int32 temp;
temp=1;
temp=temp1<<y;
temp=x&temp;
if(temp) return(1);
else return(0);
}
//输入参数:x为从机号码;
void Slave_Address_set_bit(unsigned char *buff)
{ unsigned char quotient_Value; //用来放商值;
unsigned char residue_Value; //用来放余数;
unsigned char x;
x=atoi(buff);
quotient_Value=x/32;
residue_Value=x%32;
bit_set(Slave_adr[quotient_Value],residue_Value); //更新Slave_adr[];
}
//输入参数:x为从机号码;
void Slave_Address_clear_bit(unsigned char *buff)
{ unsigned char quotient_Value; //用来放商值;
unsigned char residue_Value; //用来放余数;
unsigned char x;
x=atoi(buff);
quotient_Value=x/32;
residue_Value=x%32;
bit_clear(Slave_adr[quotient_Value],residue_Value); //更新Slave_adr[];
}
//输入参数:x为从机号码;
bit Slave_Address_test_bit(unsigned char *buff)
{ unsigned char quotient_Value; //用来放商值;
unsigned char residue_Value; //用来放余数;
unsigned char x;
x=atoi(buff);
bit temp_bit;
quotient_Value=x/32;
residue_Value=x%32;
temp_bit=bit_test(Slave_adr[quotient_Value],residue_Value);
return(temp_bit);
}
//函数功能:将Slave_adr[]中的数据转换为16进制ASCii码,保存到Slave_Send_adr[]中
void send()
{ signed char i;
unsigned char temp_array[5];
int temp;
memset(Slave_Send_adr,'\0',73);
for(i=7;i>=0;i--)
{ memset(temp_array,'\0',5);
temp=(int)(Slave_adr[i]>>4);
sprintf(temp_array,"%Lx",temp); //将高16位转换为16进制ASCii码;
strcat(Slave_Send_adr,temp_array);
temp=(int)Slave_adr[i];
sprintf(temp_array,"%Lx",temp); //将低16位转换为16进制ASCii码;
strcat(Slave_Send_adr,temp_array);
memset(temp_array,'\0',5);
strcpy(temp_array,";")
strcat(Slave_Send_adr,temp_array);
}
}
如果麻烦就只翻译
unsigned char32 Slave_adr[8];
unsigned char32 Slave_Send_adr[73];

和这三个函数
void bit_set(int32 x,int y)
void Slave_Address_set_bit(unsigned char *buff)
void send()

慕桂英3389331
浏览 100回答 2
2回答

慕尼黑的夜晚无繁华

//char32不清楚什么类型,就当INt32了Int32[] Slave_adr = new Int32[8];Int32[] Slave_Send_adr = new Int32[73];void bit_set(Int32 x, int y){Int32 temp;temp = 1;temp = temp << y;x = x | temp;}void Slave_Address_set_bit(byte[] buff){char quotient_Value; //用来放商值;char residue_Value; //用来放余数;char x;x = BitConverter.ToChar(buff, 0);quotient_Value = x / 32;residue_Value = x % 32;bit_set(Slave_adr[quotient_Value], residue_Value); //更新Slave_adr[];}只翻译了这么多,第三个很烦,直接翻译很难。memset还好,strcat,sprintf,strcpy等等还要翻译如果知道要实现什么转换,就可以自己要C#写段函数了

白板的微信

unsigned char32 这什么类型?没用过,c#中应该用:char就可以。unsigned char temp_array[5];改为:char[] temp_array = new char[5];memset(temp_array,'\0',5);就用不到了。运算符功能基本都是一样的,void Slave_Address_set_bit(unsigned char *buff)改为:void Slave_Address_set_bit(ref char[] buff)其它没什么了吧&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP