在单片机中为什么还有uchar这个 怎么还有无符号字符,字符不都是无符号的吗???谢谢、

如题所述

uchar 一般指的是 unsigned char, 即无符号字符型,数值范围是0-255。
若是char型数据,数值范围是 -128-- +127。
C语言中没有字符型数据,所谓字符型实际是字节型。
由于uchar 不是C编译器默认的数据类型关键字,所以在某个头文件中或在C源程序开头一定有一句:
typedef unsigned char uchar;
或者:#define uchar unsigned char追问

我的意思是说 符号带正负不像数字,有些奇怪。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-29
在单片机中,unsigned char 是无符号字节型数据,不能理解为字符,单片机是8位机,基本数据绝大部分都是单字节数据类型。所以要与普通C语言分清。本回答被网友采纳
第2个回答  2011-03-20
数据取决于你如何解释。只要有需求,就可以用代码换取对某种数据类型的支持。
单片机连浮点都能支持,何况小小的有符号字符型……
第3个回答  2011-03-20
char 整数范围为-128到127( 0x80~0x7F)
而unsigned char 整数范围为0到255( 0~0xFF )追问

我的意思是说 符号带正负不像数字,有些奇怪。

追答

呵呵,你仔细想一想其实字符类型char就是数值范围为-128~127的整型,比如'A'的ASII码值为65。我觉得可能你以前学过C或C++,所以在你的印象当中认为char类型就应该是 'A'~'Z' '0'~'9'这些字符等。而C51中,经常拿char型数据当整型数据使用可能你不大习惯吧。

本回答被提问者采纳
相似回答