c++ - 将字符转换为无符号字符
问题描述
有很多与此相关的问题,但他们回答了从 char* 到 unsigned char* 的转换。我想问的是 char 到 unsigned char 的转换:
如果我将(C-style 或 static-cast)字符转换为无符号字符,例如:
char c = 'A' ;
unsigned char uc = ( unsigned char ) c ;
施法过程中积分值可以c
变化吗?由于char是有符号或无符号的,因此是否定义了实现,所以无论它是有符号的,转换是否可能会改变字符的整数值?
我主要关心的是积极的价值观。如果我采用“以上”方式,是否有可能改变价值观?
解决方案
从 C++14 开始,char
ifsigned
必须是 2 的补码。
因此从signed char
to的转换unsigned char
和反之亦然不能改变底层的位模式。
推荐阅读
- jquery - jquery自动完成文本输入美国州每个州去不同的页面不区分大小写
- c++ - 如何在 C/C++ 10.5 章节数值配方中调用** var
- python - 在字符矩阵中递归搜索单词
- android - Android 测试 GitHub 操作:没有这样的文件或目录,打开 'undefined/licenses/android-sdk-arm-dbt-license'
- python-3.x - 在字典中附加一个 int 键
- c++ - c++ 中双精度(与长双精度)的相等(==)
- typescript - 从其他项目文件导入类时,Monorepo 避免(找不到模块“lib”)
- java - 将 MouseListener 添加到 jComboBox
- php - 查找数组的第 i 个元素的乘积,使得该乘积不包含 i
- python - 如何广播将每个 ID 的第一个日期作为列添加到多索引数据帧?