2016年10月9日星期日

单片机中unsigned char 和unsigned int的区别

单片机中unsigned char 与 unsigned int的区别如下:
  unsigned char 是无符号字符,数据长度是8位,表示值范围从0~255
  unsigned int 是无符号整数,数据长度是16位(或者32位,看单片机的型号而定),表示范围从0~65535(或者0~4294967295)
uint 是无符号整型,16位二进制,需要2个字节表达,其值范围为:0到65535。
uchar是无符号字符型,8位二进制,只需要1个字节表达,其值范围为:0到255。
显然,如果delay函数定义为delay(uchar z),你在调用delay函数时,传递的参量不能超过255,否则就会得到意想不到的后果。另外,在delay函数内部,传递的延时量z用unchar型和unint型,即使是用同一个传递数字,例如都是用delay(100),因为运算量的不同,它们之间还是有些差异的。
这里所谓的运算量是指编译成汇编后的运算,从C源程序是看不出来的。