很菜,对C语言不熟悉,请知道的帮忙将下面的C转成Delphi
void CountPasAdd(unsigned char* firstNum,unsigned char* secondNum,unsigned char len,unsigned char * outData)
{
unsigned char i,preBit;
preBit=0;
for(i=len;i>0;i--)
{
outData[i-1]=(preBit+firstNum[i-1]+secondNum[i-1]) % 0x100;
preBit=(preBit+firstNum[i-1]+secondNum[i-1]) / 0x100;
}void CountPasConverst(unsigned char* ConverstData,unsigned char len)
{
unsigned char i,middData;
for(i=0;i<len/2;i++)
{
middData=ConverstData[i];
ConverstData[i]=ConverstData[len-i-1];
ConverstData[len-i-1]=middData;
}
for(i=0;i<len;i++)
ConverstData[i]=(ConverstData[i] / 16)+(ConverstData[i] % 16)*16;
}void secrecy_calculate(void)
{
unsigned char i,SC0[3],middDta1[3],i,middDta2[3];
Card_Status.oneBit.b6 =0;
Read_Card_RAM(0xfc,4,0,varry_one);//从地址OXFC开始读4个字节的数据(0X19,0X64,0X01,0X14)
for (i=0;i<4;i++)
{
if (varry_one[i]!=factory_sign[i])
{
break;
}
}
if (i<4)
{
for (i=0;i<3;i++)
{
secrecy_arry[i] =0xff;
Card_Status.oneBit.b6 =1;
}
}
else
{
Read_Card_RAM(0x40,5,0,card_data_front);//0X40-0X44为5字节的数据
middDta1[0]=0;
for(i=0;i<2;i++)
middDta1[i+1]=card_data_front[i];
for (i=0;i<3;i++)
SC0[i] =secret_SC0[i];
CountPasAdd(SC0,middDta1,3,middDta2);
CountPasConverst(middDta2,3);
CountPasAdd(middDta1,middDta2,3,secrecy_arry);//
CountPasConverst(secrecy_arry,3);
for(i=0;i<3;i++)
{
middDta1[i]=card_data_front[i+2];
middDta2[i]=secrecy_arry[i];
}
CountPasAdd(middDta1,middDta2,3,secrecy_arry);
}
}/**********************************************************************************
Name:     Read_Card_RAM
Input:      地址,字节数,数组号,数组名 
***********************************************************************************/