隐式类型转换(整型提升和截断)、强制类型转换的总结

简介: 隐式类型转换(整型提升和截断)、强制类型转换的总结

前言

       在写了这么久的习题博客,我发现其中非常爱考查的一个知识就是类型的转换,比如不同类型之间的加减乘除、比较大小和赋值运算等,这里面涉及最为多的就是隐式类型转换,所以在此专门写一个关于类型转换的知识点总结,也希望大家多多支持,一起努力!

一、隐式类型转换

       其中最热门的考点之一就是隐式类型的转换,直接介绍转换规则:

1. 转换规则

1. 低字节的类型转换成高字节的类型(char -> short -> int -> long -> float -> double)

2. 有符号数转换成无符号数

3. 转换的时候,不是改变原变量的类型,而是原变量拷贝一个临时变量,让这个临时变量去改变,原变量不变;

4. 在赋值运算符中,左操作数的字节数小于右操作数,会发生截断,反之为提升

2. 整型提升:

在面对低字节到高字节的转换,发生的就是整型提升

【规则】

1. 无符号数的提升,高位补0

2. 有符号数的提升,高位补符号位

3. 截断

高字节转换为低字节,发生截断

【规则】

1. 截断从低位开始一个一个数,数到对应的字节处截断

2. 截断之后,如果是个无符号数,那最高位的数字就是数值位

3. 截断之后,如果是个有符号数,那最高位的数字就是符号位

二、强制类型转换

这是一种显式的类型转换,直接在变量前面用括号加上我们要转换成的类型

【规则】

1. 不影响原变量的类型,只是拷贝了一个临时变量,作为转换的对象;

2. 同样会发生整型提升和截断;


相关文章
|
7月前
|
存储 C语言 C++
截断&&整型提升&&算数转换
截断&&整型提升&&算数转换
|
C语言
C语言:截断+整型提升+算数转换练习
截断+整型提升+算数转换练习
73 0
|
存储
C 强制类型转换
C 强制类型转换。
40 0
|
7月前
|
程序员 编译器 C语言
c强制类型转换
c强制类型转换
90 2
|
7月前
|
编译器
强制类型转换
该内容介绍了一种编程中的强制类型转换形式:`(类型名)(表达式)`,用于将表达式的值转换为指定类型。例如 `(double)a` 将 `a` 转换为 `double` 类型,`(int)(x+y)` 把 `x+y` 的和转换为 `int` 类型。当尝试将不匹配的类型赋值时,如 `int a = 3.14`,需要使用强制转换 `(int)3.14` 来取整数部分以避免编译错误。
52 0
|
安全 程序员 编译器
【C++】C++中的类型转化
说起类型转化,我们在C语言之前的学习中可以了解到,类型转换可以分为两种情况:隐式类型转化;显示类型转化。但是为什么在c++中还要继续对类型转化做文章呢?我们一起来看:
87 0
【C++】C++中的类型转化
隐式类型转换 算术转换 操作符的属性
隐式类型转换 算术转换 操作符的属性
58 0
|
C语言 索引
操作符续(整型提升与算术转换)
操作符续(整型提升与算术转换)
89 0
3、类型转换(强制转换、自动转换、与或非)
3、类型转换(强制转换、自动转换、与或非)
141 0
3、类型转换(强制转换、自动转换、与或非)