Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是无符号字符?

在C / C ++中,unsigned char用于什么?它与常规有什么不同char?

回答 2

akjok54

发布于 2017-12-25 10:25:38

举例来说,使用unsigned char:

unsigend字符经常被用在计算机图形学中,经常(虽然不总是)给每个颜色分量指定一个字节。看到一个RGB(或RGBA)颜色表示为24(或32)位,每个都是无符号字符。由于无符号字符值落在[0,255]的范围内,因此这些值通常被解释为

  • 0表示完全缺乏给定的颜色分量
  • 255表示100%的给定颜色的颜色

所以你最终会以(255,0,0) - >(100%红色,0%绿色,0%蓝色)RGB红色结束。

为什么不使用签名字符?算术和位移是成问题的。正如已经解释的那样,一个有符号的字符范围基本上被移动了-128。将RGB转换成灰度的非常简单和朴素(大多数是未使用的)方法是对所有三种颜色成分进行平均,但是当颜色成分的值为负值时会出现问题。使用无符号字符算术时,红(255,0,0)平均为(85,85,85)。但是,如果这些值是有符号字符(127,-128,-128),我们最终会得到(-99,-99,-99),在我们的unsigned char空间中将是(29,29,29),这是不正确的。

秋之夕颜清

发布于 2017-12-25 10:25:07

在C ++中,有三种不同的字符类型:

  • cha
  • signed cha
  • unsigned cha

如果你使用的字符类型的文字,使用不合格的char:

  • 这是字符文字的类型像'a'或'0'。
  • 它是组成C字符串的类型 "abcde"

它也可以作为一个数字值来处理,但是这个值是否被当作有符号或无符号来处理是没有规定的。注意通过不等式进行字符比较 - 尽管如果你限制自己的ASCII(0-127),你就是安全的。

如果你将字符类型用作数字,请使用:

  • signed char,它给你至少 -127至127范围。(-128到127是常见的)
  • unsigned char,它给你至少 0到255的范围。

“至少”,因为C ++标准只给出了每个数字类型需要覆盖的最小值范围。sizeof (char)被要求为1(即一个字节),但理论上一个字节可以是例如32位。sizeof仍然会报告其大小1 - 意味着你可以拥有sizeof (char) == sizeof (long) == 1。

和开发者交流更多问题细节吧,去 写回答
相关文章
无符号数和有符号数
人有十个手指头,习惯了逢十进一,于是十进制成了生活中的标准。程序的世界只有高低电平两种状态,更适合用二进制来表示,于是二进制成了程序世界的标准。 对与无符号数来说,我们更喜欢谈他们之间的转化,十进制是我们最习惯的进制,于是十进制转为R进制,R进制转为十进制变尤为重要。
naget
2019/07/03
3.2K0
无符号数和有符号数
无符号整型和有符号整型的区别,以及无符号整型的使用
size_t 等价于unsigned int 接收sizeof的返回值要用%u
大忽悠爱学习
2021/03/04
4.5K0
什么是 ”无渲染组件“ ?
无头用户界面组件是一种不提供任何接口而提供最大视觉灵活性的组件。“等等,你是在提倡没有用户界面的用户界面模式么?”
winty
2023/08/23
2330
什么是 ”无渲染组件“ ?
什么是无头 WordPress?
今天有人在群里面问什么是无头 WordPress? 我就在网上找了两张图来解释一下。 首先无头 WordPress 不是真的无头,哈哈,第一张图就是简单搞笑一下,然后为了做封面图。😄 无头 WordPress 英文名是 Headless WordPress,它来源于 Headless CMS(无头 CMS),类似的概念还有无头浏览器,大家都可以分别搜索一下。😎 第二张图通过明白什么是无头 WordPress,简单解释一下: 我们平常使用 WordPress 相对于无头 WordPress,就是传统的
Denis
2023/04/13
3840
什么是无头 WordPress?
mysql无符号整型溢出
下午用sql的时候突然想到这个问题,徒手测试了一下,结果还真令人意外: 首先创建一张测试用表 mysql> CREATE TABLE `t1` ( -> `id` int UNSIGNED NOT NULL AUTO_INCREMENT , -> `val` int UNSIGNED NOT NULL DEFAULT 0 , -> PRIMARY KEY (`id`) -> ); Query OK, 0 rows affected (0.04 sec) 初始化一条数据: mysql> insert in
码农二狗
2018/06/29
2K0
FPGA设计中 有符号数、无符号数
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
1.7K0
FPGA设计中 有符号数、无符号数
面试题18:什么是符号引用?什么是直接引用?
在解析阶段会有一个步骤,将运行时常量池当中二进制数据当中的符号引用转化为直接引用的过程。
爪哇缪斯
2023/05/09
1.1K0
面试题18:什么是符号引用?什么是直接引用?
移位运算(无符号移位运算,有符号移位运算)
可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型 一个int类型占4个字节,共32位,带符号位,所以最高位位符号位(使用0,1表示符号位)
全栈程序员站长
2022/09/14
1.5K0
PWN 无符号和有符号整型的绕过漏洞
C语言中,无符号整型数是不带正负表示符号的整型数。C语言在计算机里编译时数都是用二进制表示的,如果最左边这一位不用来表示正负,而是和后面的连在一起表示整数,那么就不能区分这个数是正还是负,就只能是正数,这就是无符号整型数。
yulate
2023/05/02
1K0
PWN 无符号和有符号整型的绕过漏洞
基础野:细说无符号整数
Brief                                 本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下。   本篇我们一起来探讨一下基础的基础——无符号整数的表示方式和加减乘除运算。 Encode                                 无符号整数只能表示大于或等于零的整数值。其二进制编码方式十分直观,仅包含真值域。   我们以8bit的存储空间为例,真值域则
^_^肥仔John
2018/01/18
1.4K0
基础野:细说无符号整数[通俗易懂]
本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下。
全栈程序员站长
2022/09/20
1.5K0
什么是字符集?
无论是数据库,还是应用服务器,有时会碰见字符集的问题,就有些懵圈。看见CSDN转载了程序员乔戈里的一篇文章,用漫画的形式,讲解了各种字符集的知识,通俗易懂。
bisal
2019/06/19
1.3K0
什么是字符集?
Java 中什么是无锁编程?
多线程环境下,为了保证数据不受到并发操作的影响,通常会采用加锁的策略保证一致性。除了加锁之外,还有一种方式就是采用无锁编程。
水货程序员
2018/11/13
3K0
什么是无服务器架构?
无服务器计算(Severless computing,简称 Serverless)现在是软件架构圈中的热门话题,国外三大云计算供应商(Amazon、Google 和 Microsoft)都在大力投入这个领域,涌现了不计其数的相关书籍、开源框架、商业产品、技术大会。到底什么是 Serverless?它有什么长处/短处?我希望通过本文对这些问题提供一些启发。
物流IT圈
2019/07/16
4.5K0
什么是无服务器架构?
C++ 中有符号类型到无符号类型的转换
为了更好地解释下面的代码,先来介绍一些背景知识,在我的计算机中, char 类型占 8 个比特位,那么, unsigned char 类型能表示的数的范围为 0 ~ 2的8次方 - 1,即 0 ~ 255,共 256 个数;int 类型占 32 个比特位,那么 unsigned 类型所能表示的数的范围为 0 ~ 2的32次方 - 1,即 0 ~ 4294967295,共 4294967296 个数,接下来看下面的代码:
用户7886150
2021/02/15
1.5K0
如何检测无符号整数乘法溢出
我在写一个程序计算 a ^ b = c 其中 a、b、c 都是无符号整数。为了检测乘法溢出,我写了下面的检测程序,
ClearSeve
2022/02/10
1.3K0
LaTeX特殊字符和符号
无论什么字体,LaTeX以一个反勾号或重音符(`)当做左引号,以一个正勾号或直立引号(')当做右引号。
hotarugali
2022/03/17
6.4K0
LaTeX特殊字符和符号
【总结】1672- 什么是 ”无渲染组件“ ?
假设你现在需要实现一个掷硬币的功能,当组件渲染时模拟一次掷硬币!一半的时间组件应该渲染 “正面”,一半的时间应该渲染 “反面”。你对你的产品经理说 “这需要多年的研究!” 然后你继续工作。
pingan8787
2023/09/01
2190
【总结】1672- 什么是 ”无渲染组件“ ?
什么是Serverless无服务器架构?
企鹅号小编
2017/12/28
2.4K0
什么是Serverless无服务器架构?
点击加载更多

相似问题

什么是特殊的美元符号shell变量?

2582

个体工商户营业执照什么是有字号和无字号?

12.5K

“u”和“r”字符串标记究竟做什么,以及什么是原始字符串文字?

2479

什么是静态方法,什么是成员变量?

0153
相关问答用户
平安资管 | 架构师擅长4个领域
擅长3个领域
腾讯云TDP | 高级后端开发工程师擅长3个领域
擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档