C语言基础入门之C语言类型转换
小职 2021-12-06 来源 : 阅读 522 评论 0

摘要:本篇主要是对于C语言基础入门之C语言类型转换的相关知识点做一些简要的介绍,希望对C语言初学者的学习有一定的帮助。

本篇主要是对于C语言基础入门之C语言类型转换的相关知识点做一些简要的介绍,希望对C语言初学者的学习有一定的帮助。

C语言基础入门之C语言类型转换

文章目录

类型转换

隐式类型转换

强制类型转换

类型转换

数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。转换包括隐式类型转换和强制类型转换。

类型转换的原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。

C语言基础入门之C语言类型转换


隐式类型转换

隐式转换也称为自动转换,遵循一定的规则,由编译器自动完成。

C的整型算数运算总是至少以缺省整型类型的精度来进行,为了获得这个精度,表达式中的字符和短整形操作数在使用之前都被转换成普通整型,这种转换为整型提升。

整型提升:通用CPU是难以直接实现两个8比特位直接相加运算。所以表达式中各种长度可能小于int长度的整型值,都必须转换为int或者unsigned int ,然后才能送入CPU去执行运算。

代码示例1:


int main()

{

char a = 5, b = 126;

//5:00000000 00000000 00000000 00000101

//a:0000 0101(截断操作)

//126:00000000 00000000 00000000 01111110

//b:0111 1110

//当a和b相加时,都是char类型,就会发生整型提升

//int c = 000000000000000000000000 00000101 + 000000000000000000000000 01111110

//char c = 10000011(整型截断)

//以%d 打印,再次在内存中整型提升,再打印原码

//int c = 11111111111111111111111110000011(补码)

//打印原码:10000000000000000000000011111101

char c = a + b;

printf("%d\n", c);

return 0;

}

C语言基础入门之C语言类型转换


**如何整型提升:**按照变量的数据类型的符号位来提升。

代码示例2:


//负数的整型提升

char s1 = -1;

变量s1的二进制补码中只有8个比特位 11111111

因为char是有符号的,所以在整型提升的时候,高位补充符号位

即:11111111 11111111 11111111 11111111


//正数的整型提升

char s2 = 1;

变量s2的二进制补码中只有8个比特位 00000001

因为char是有符号的,所以在整型提升的时候,高位补充符号位

即:00000000 00000000 00000000 00000001


无符号数的整型提升,高位直接补0;

代码示例3:

隐式转换


int main()

{

int num = 5;

printf("s1=%d\n", num / 2);

printf("s2=%lf\n", num / 2.0);


return 0;

}


s1=2

s2=2.500000

请按任意键继续. . .



强制类型转换

强制类型转换指的是使用强制类型转换运算符,将一个变量或表达式转化成所需的类型

代码示例1:


#include <stdio.h>


int main()

{

float x = 0;

int i = 0;

x = 3.6f;


i = x; //x为实型, i为整型,直接赋值会有警告

i = (int)x; //使用强制类型转换


printf("x=%f, i=%d\n", x, i);


return 0;



这里只是介绍了有关类型转换的入门知识,希望对入行C语言的朋友们有一定的帮助。


✅  扫码免费获取基础课程·答疑解惑·职业测评

C语言基础入门之C语言类型转换

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程