signed char和unsigned char的用途是什么

时间:2018-05-22 05:50:47

标签: c memory

因为C语言在内部使用char作为整数(存储对应的ASCII)。对于内部计算,我们可以使用signed和unsigned char。

除此之外,任何其他用途??

1 个答案:

答案 0 :(得分:0)

signedunsigned char首先是小整数。你需要存储大量的小数字(在[-127,+ 127]¹或[0,255]范围内)?与几乎任何其他类型相比,您可以使用signedunsigned字符数组并节省内存。这就是为例如图像 - 灰度图像通常存储为unsigned char的数组(并且RGB图像通常存储为3 unsigned char个组件的数组)。

char的第二种用法是字符串,你可能已经看过了;请注意charsigned charunsigned char的不同类型,其签名是实现定义的。这在许多情况下都是愚蠢和不方便的 - 并且在调用unsigned char / toupper家族的函数时会导致诸如强制转换为isupper等令人伤心的事情。

最后,char&合。被定义为C抽象机器的“底层存储”。根据定义sizeof(char) == 1,任何类型都可以通过(signed|unsigned)? char指针进行别名来访问其基础位表示。

  1. 是的,-127; [-127,+ 127]是标准允许signed char的最小范围,因为它仍然允许符号和幅度表示;更现实的是,在本世纪的任何现实世界的机器上它至少会是[-128,127]。