C/C++ 中char类型如何转化short?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++ 中char类型如何转化short?相关的知识,希望对你有一定的参考价值。
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 运行结果
参考技术A 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本回答被提问者和网友采纳 参考技术B 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 进行转换
关于类型转换还有许多东西没说,你自己去找资料! 参考技术C c++中建议你用staic_cast,比强制转换好多啦
即,char c;
short s;
s=static_cast<short>(c); 参考技术D char c;
short s;
s=(short)c;追问
C语言里边这个可以强转吗?
追答这就叫强转,可以的,但由你程序员自己承担后果.
以上是关于C/C++ 中char类型如何转化short?的主要内容,如果未能解决你的问题,请参考以下文章