前几天去面试了,我写的一段代码 有问题吗?
unsigned char telephone_num[11]={1,8,6,8,2,1,2,1,1,3,8};
#include <stdio.h>
unsigned char *Teleph_to_BCD(unsigned char *tele_num);
int main()
{
char i;
unsigned char *ptr=NULL;
ptr=Teleph_to_BCD(telephone_num);
for(i=0;i<6;ptr++,i++)
{
printf("%02x\n" ,*ptr);
}
return 0;
}
//将两位电话号码合并成一个BCD字节
unsigned char *Teleph_to_BCD(unsigned char *tele_num)
{
unsigned char temp,i;
static unsigned char bcd_num[6]={0,0,0,0,0,0};
for(i=0;i<10;i=i+2)
{
temp=( (*tele_num) & 0x0f)<<4;
tele_num++;
temp|= (*tele_num) & 0x0f;
bcd_num[i/2]=temp;
}
bcd_num[5]=telephone_num[10]&0x0f;
return bcd_num;
}
|