首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无论如何都能表示256个数字。
#include<stdio.h>
void main()
{
char a[]={0X7F, 0X01, 0X12, 0X01, 0X00, 0XD2, 0X00, 0X00, 0X03, 0XE9};
unsigned char b[]={0X7F, 0X01, 0X12, 0X01, 0X00, 0XD2, 0X00, 0X00, 0X03, 0XE9};
int i;
for(i=0; i<10; i++) //0XD2,0XE9超出范围127
printf("%02X ",a[i]);
printf("\n");
for(i=0; i<10; i++)
printf("%02X ",b[i]);
printf("\n");
}