hex编码问题
15,BYTE数据转HEX编码
int ByteArrToHexStr(char * lpszHexStr, unsigned char const * lpuzBuffer, int nBuffCount);
调用结果如:
unsigned char arr[] = {0xa1, 0xb2, 0xc3 ,0xd4, 0xf5};
char text[100];
ByteArrToHexStr(text, arr, sizeof(arr)/sizeof(*arr));
printf("%s\n", text); // 输出A1B2C3D4F5
这样的一道题,我做的时候这样做:
int ByteArrToHexStr(char * lpszHexStr, unsigned char const * lpuzBuffer, int nBuffCount)
{
int nCount = 0;
while (*(lpuzBuffer++) != '\0')
++nCount;
return 0;
}
到了这里就有点奇怪,为什么nCount会是19?
0xa1在unsigned char中是怎么表示的?不能以'\0'来判断结尾?