在单片机中为什么还有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型数据当整型数据使用可能你不大习惯吧。

本回答被提问者采纳

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

51单片机“uchar”是什么意思?
“uchar”在51单片机中代表无符号字符型变量。详细解释如下:1. uchar的定义:“uchar”是“unsigned char”的缩写,表示无符号字符型变量。在C语言中,char类型用于存储字符数据,可以是带符号的或无符号的。对于无符号字符型,其取值范围从0到255。2. 在51单片机中的...

uchar在单片机中是什么意思
无符号字符型,数值范围0-255。在单片机中,uchar代表无符号字符型数据类型。数值范围是从0到255,不包括负数。在C语言中,并没有默认定义uchar关键字,需要进行相应的声明或者定义。

51单片机“uchar”是什么意思?
在51单片机编程中,"uchar"是一个缩写,全称为"unsigned char",它表示无符号字符型数据,占用8位,数值范围从0到255,占用一个字节。使用uchar可以替代更长的"unsigned char",简化书写。例如,当你定义uchar count1=0时,你实际上是在创建一个无符号字符型变量count1,其初始值为0。在C语言中,一...

在51单片机中,不同类型的数之间能相互赋值吗?它们的指针呢,能相互交换...
不同类型之间是不能直接赋值的,要经过类型的强制转换:int型占4个字节,char型占1个字节,小的给大的类型一般的编译器是可以通过的,但大的给小的你就要指明了 举个例子:int a=2;char b=5;a = b; \/*这种操作一般是允许的*\/ b = (char)a; \/*这需要类型转换*\/ ...

为什么keil的数字都定义为uchar
单片机里面最紧张的就是存储空间,所以尽量用短的数据,uchar在头文件中有定义:unsigned char。无符号字符变量,占一个字节,而int占两个字节,long占四个字节,不到必要时候用不着用两个甚至四个字节去表示一个字节就能表示的数据。

单片机啊uchar与uint区别?
单片机uchar与uint区别为:数据类型不同、占用空间不同、表示范围不同。一、数据类型不同 1、uchar:uchar的数据类型为无符号字符类型。2、uint:uint的数据类型为无符号整数类型。二、占用空间不同 1、uchar:uchar的内存占用空间为1个字节,8比特。2、uint:uint的内存占用空间为2个字节,16比特。三...

单片机啊uchar与uint区别?
单片机中uchar与uint的差异主要体现在数据类型、内存占用和数值表示范围三个方面。首先,让我们来看数据类型的不同。uchar代表无符号字符类型,它的设计用于存储单个字符数据,而uint则是无符号整数类型,适用于表示更大的数值范围。在内存占用上,uchar占用的存储空间仅为1个字节,包含8个比特位,而uint则...

单片机中unsigned char 和unsigned int的区别
uchar是一个8位无符号数,表示范围0到255,而uint是十六位无符号数,表示范围0到65535.但是要注意的是8位单片机当中字宽仅有8位,如果用keil编译器的话,假如采用uchar类型数据,它会给你分配一个寄存器(8位);但是如果采用uint的话,必须要两个寄存器才能完全表达数据的大小。单片机从寄存器取操作数...

51单片机c语言中,uchar是什么啊?谢谢啦
其实这是错误的写法,在C51中不对,当然如果前面有定义又是另外一回事,也就是有 define unchar unsinged cahr.如果没有这句,就错了,如果有,那就是 unsinged cahr一样的功能.

相似回答