C/C++ 中char类型如何转化short?
发布网友
发布时间:2022-05-18 08:05
我来回答
共5个回答
热心网友
时间:2023-10-12 00:00
1 在C/C++中char类型可以转换为short类型
通过类型的隐式转换
2 一个示例来验证
#include<stdio.h>
int main(){
char ch = 'B';
short n;
n = ch;
printf("%d", n);
getchar();
return 0;
}
3 运行结果
热心网友
时间:2023-10-12 00:00
char 类型 就是 1字节 整型。
转化short 可以用 强制转化,也可以直接 赋给 short int.
char 型 数据存放的内容,可解释为 有符号 char 和 无符号 unsigned char。转化时,要注意,你想处理成有符号或无符号数。
例如:
main()
{
char a= 0x80;
short int x1,x2,x3,x4;
x1 = (char) a;
x2 = (unsigned char) a;
x3 = a;
x4 = (short int) (0xff & a);
printf("%d %d %d %d",x1,x2,x3,x4);
}
输出:
-128 128 -128 128
热心网友
时间:2023-10-12 00:01
C++里有两种基本数据类型: 整形和浮点
整形数按精度由低到高分为:
char
wchar_t
short
int
long
long long
浮点按精度由低到高分为:
float
double
long double
上面有些没列出来。
记住: 1.同种基本数据类型有低精度想高精度转换是自动完成的,不需要什么特殊的语法。
2.由整形向浮点类型转换是自动完成的。
3.其他的转换需要强制转换。
所以你的问题:
char ch ='a';
short s = ch;
这样就可以了, 不用写什么(short)ch或者 static_cast<short>(ch).
强制类型转换的语法:
C语言版本: (目标类型)被转换实体
例:
double d = 34.3;
int i = (double)d;
C++构造函数转换语法: 目标类型(被转换实体)
例:
double d = 34.3;
int i = int(d);
C++其他转换:
可用static_cast 、 reinterpret_cast 、 safe_cast 进行转换
关于类型转换还有许多东西没说,你自己去找资料!
热心网友
时间:2023-10-12 00:01
c++中建议你用staic_cast,比强制转换好多啦
即,char c;
short s;
s=static_cast<short>(c);
热心网友
时间:2023-10-12 00:02
char c;
short s;
s=(short)c;追问C语言里边这个可以强转吗?
追答这就叫强转,可以的,但由你程序员自己承担后果.