|
|
发表于 2013-10-31 21:59:02
|
显示全部楼层
void bao_cun_RECV(int addr,int baochang,int mytype)//把16进制数值转成16进制字串。 如:0x77 转为 0x370x37.
//参数1 数据的地址 参数2 要转换的数据的长度。
{
//30--37
//2e777f77
//777677e2烫烫烫烫$?
//char strtemp[baochang];
unsigned char * recv_bao=(unsigned char*)malloc(baochang*2*sizeof(unsigned char));
int n=0;
unsigned char gaowei[1],diwei[1],temp[1];
/*HWND hwnd=::FindWindowA(NULL,"Dialog");
HWND hwnd1=GetDlgItem(hwnd,IDC_LIST2);*/
for (int i=0;i<baochang;i++)
{
temp[0]=*(char*)addr;//0xd5
gaowei[0]=temp[0]>>4;//高位 如:eax 里是 d5 这里是 0xd
gaowei[0]=gaowei[0]<<4;//d0
diwei[0]=temp[0]-gaowei[0];//d5-d0=5
gaowei[0]=gaowei[0]>>4;//这里回到 d
addr++;
if(gaowei[0]<=9&&gaowei[0]>=0)//
{
gaowei[0]+=0x30;
}
else
{
gaowei[0]+=0x37;
}
recv_bao[n]=gaowei[0];
n++;
if(diwei[0]<=9&&diwei[0]>=0)
{
diwei[0]+=0x30;
}
else
{
diwei[0]+=0x37;
}
recv_bao[n]=diwei[0];
n++;
}
|
|