char为字符类型。unsigned char为无符号字符类型。
二者均是占一个字节,可以直接通过强制转换的方式,把char类型的值转为unsigned char。
当定义变量:
unsigned char a;
char b;
转换的形式为:
a = (unsigned char)b;
当char类型的值为正时,转换后的值为原值。
当char类型为负时,原始值的符号位会转为数据位,即结果值为原始值补码代表的无符号值。具体计算公式为,
结果值=256+原始值。
例:
#include<iostream>
using namespace std;
int main(){
char si = -10;
unsigned char usi = si;
printf("%d\n",(int)usi);
}
输出:246