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?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中int和char之间的转化问题

c语言中怎么把不同类型转化成同一类型?

什么是unsigned char;;?

c语言中如何将 int转化为string 类型

C/C++基本问题:字符串转化为long型数字

c语言中如何将字符串转化成整数型并输出?