他们区别不是很大
char能表示从-127~128(要不就是-128~127)的数,而unsigned char能表示0~255的数,所以通常在位图(256色)中常用un...,而字符的显示用char,因为ascII表示的字符是-127~128(要不就是-128~127),你可以写个小程序试试

解决方案 »

  1.   

    65就是A的ASCII码的十进制表示
      

  2.   

    C中支持类型转换,可以直接将BYTE、char、int进行类型转换。unsign char和char还是有很大差别的如:
    char i = 0x90;那么i < 0;
    unsign char i = 0x90;那么i > 0;
      

  3.   

    得到的65本身已经是A的ASCII码的十进制表示,要换成二进制换算一下就可以了
      

  4.   

    BYTE和char,从存储上来讲,是一样的,都是占8个bit。
    那么,下面的代码,实际存储的值是一样的:
    char ch = 'A';
    char ch = (char)65;
    BYTE by = (BYTE)65;
    BYTE by = (BYTE)'A';但是,编译器对这两者的“解释”是不同的,对char类型来说,最高位如果是1,编译器认为这是负数,而BYTE则不是。也就是说,如果:
    char ch = (char)-1;
    那么(BYTE)ch == 255结果为TRUE。
      

  5.   

    BYTE和char,从存储上来讲,是一样的,都是占8个bit。
    那么,下面的代码,实际存储的值是一样的:
    char ch = 'A';
    char ch = (char)65;
    BYTE by = (BYTE)65;
    BYTE by = (BYTE)'A';但是,编译器对这两者的“解释”是不同的,对char类型来说,最高位如果是1,编译器认为这是负数,而BYTE则不是。也就是说,如果:
    char ch = (char)-1;
    那么(BYTE)ch == 255结果为TRUE。