C语言中有符号和无符号字符的需求是什么

C语言中有符号和无符号字符的需求是什么,c,C,C语言中有符号和无符号字符的需求是什么 在C中使用有符号和无符号字符有什么特殊的原因吗?或者它只是为了完整性而添加的,这样编译器就不必在添加有符号/无符号修饰符之前检查数据类型了 我不是在问有符号和无符号变量。我的疑问是,在特殊情况下,无符号字符变量不足以使您依赖于有符号字符变量。您必须了解的是,数据类型“char”实际上只是一个整数,通常为8位宽。您可以像使用任何其他inter数据类型一样使用它,前提是您遵守减少的值限制。没有理由将“字符”限制为字符 在32/64位处理器上,通常不需要使用这样

C语言中有符号和无符号字符的需求是什么

在C中使用有符号和无符号字符有什么特殊的原因吗?或者它只是为了完整性而添加的,这样编译器就不必在添加有符号/无符号修饰符之前检查数据类型了


我不是在问有符号和无符号变量。我的疑问是,在特殊情况下,无符号字符变量不足以使您依赖于有符号字符变量。

您必须了解的是,数据类型“char”实际上只是一个整数,通常为8位宽。您可以像使用任何其他inter数据类型一样使用它,前提是您遵守减少的值限制。没有理由将“字符”限制为字符


在32/64位处理器上,通常不需要使用这样小的整数字段,但在8051这样的8位处理器上,8位整数不仅处理速度更快,而且使用的内存更少(有限)。

您必须了解的是,数据类型“char”实际上只是一个整数,通常是8位宽。您可以像使用任何其他inter数据类型一样使用它,前提是您遵守减少的值限制。没有理由将“字符”限制为字符


在32/64位处理器上,通常不需要使用这样小的整数字段,但在8051这样的8位处理器上,8位整数不仅处理速度更快,而且占用的内存更少。

我假设您使用的是字符来保存数字,而不是字符

因此:

有符号字符的范围至少为-128到127。 unsigned char至少提供0到255的范围

标准要求字符至少为8位,这就是我至少要说的原因。这些值可能更大


无论如何,为了回答您的问题,将字符作为无符号字符可以释放第一位为“符号”位的要求,从而允许您保留几乎两倍于有符号字符的值。

我假设您使用字符来保存数字,而不是字符

因此:

有符号字符的范围至少为-128到127。 unsigned char至少提供0到255的范围

标准要求字符至少为8位,这就是我至少要说的原因。这些值可能更大

无论如何,为了回答您的问题,将字符作为无符号字符可以释放第一个位作为“符号”位的要求,从而允许您保留几乎两倍于有符号字符的值。

信息#1:
在C中只是一个小的
int
,它使用8位

信息#2:有符号
和无符号之间的区别在于表示中的一位用作有符号变量的符号位

信息#3:由于(#2),
有符号的
变量与
无符号的
(0到255)相比,具有不同的范围(-128到127,在
字符
情况下)

Q-A#1:为什么我们需要
未签名的

在大多数情况下(例如表示指针),我们不需要有符号的变量。按照惯例,内存中的所有位置都作为无符号地址的连续数组向程序公开

Q-A#2:为什么我们需要签名

一般来说,做有符号算术

信息#1:
char
在C中只是一个小的
int
,它使用8位

信息#2:有符号
和无符号
之间的区别在于表示中的一位用作有符号变量的符号位

信息#3:由于(#2),
有符号的
变量与
无符号的
(0到255)相比,具有不同的范围(-128到127,在
字符
情况下)

Q-A#1:为什么我们需要
未签名的

在大多数情况下(例如表示指针),我们不需要有符号的变量。按照惯例,内存中的所有位置都作为无符号地址的连续数组向程序公开

Q-A#2:为什么我们需要签名


一般来说,做有符号算术

char
可以是有符号的,也可以是无符号的,这取决于底层硬件的效率。关键字
signed
unsigned
允许您明确指定您需要其他内容

引用C99基本原理:

指定了三种类型的
char
signed
、plain和
unsigned
。普通的
char
可以表示为有符号或无符号,具体取决于实现,如先前的实践中所示。C89中引入了类型
signed char
,以便在实现纯
char
无符号char
的系统上提供一个单字节有符号整数类型。出于对称性的原因,允许将关键字
signed
作为其他整数类型的类型名称的一部分


字符可以是有符号的,也可以是无符号的,这取决于底层硬件的效率。关键字
signed
unsigned
允许您明确指定您需要其他内容

引用C99基本原理:

指定了三种类型的
char
signed
、plain和
unsigned
。普通的
char
可以表示为有符号或无符号,具体取决于实现,如先前的实践中所示。C89中引入了类型
signed char
,以便在那些将纯
char
作为
无符号char实现的系统上提供一个单字节有符号整数类型<