【问题标题】:Casting a char to unsigned char将字符转换为无符号字符
【发布时间】:2019-11-08 04:06:37
【问题描述】:

有很多与此相关的问题,但他们回答了从 char* 到 unsigned char* 的转换。我想问的是 char 到 unsigned char 的转换:

如果我将(C 风格或静态转换)一个字符转换为一个无符号字符,例如:

char c = 'A' ; unsigned char uc = ( unsigned char ) c ;

c 的整数值可以在转换期间改变吗? 由于 char 是有符号或无符号的,是实现定义的,所以无论它是 signed ,转换是否有可能改变字符的整数值?

我主要关心的是积极的价值观。如果我采用“以上”方式,是否有可能改变价值观?

【问题讨论】:

标签: c++ casting char unsigned


【解决方案1】:

从 C++14 开始,char if signed 必须是 2 的补码。

因此,从signed charunsigned char 的转换不能更改底层位模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2011-10-21
    相关资源
    最近更新 更多