整形截断与提升,以及算术提升

简介:

@[TOC]

前言:

1.博主实力有限,博文有什么问题,请你斧正,非常感谢!
2.本文需要一定的数据的原码,反码,补码基知识础:见我另外一篇博客:原,反,补码

思一思:

image-20210819154707716

整形截断

1.当高字节的向低字节转变时会发生:整形截断
即在高字节数据的二进制补码,截取符合低字节数据变量大小的二进制补码,放于变量内存中。
截断后:对于有符合类型,最高位仍是符号

image-20210818204821243

整形提升

1.当低字节高字节的转变时会发生:整形提升
但是整形提升是有规则的。
整形提升规则:
1.对于有符号类型,提升是高位补符号
2.对于无符号类型,提升是高位补0

image-20210818215303274

整形提升,整形截断的用处

限制数据储存的范围
以char型为例。其它类型同理。

image-20210819144720339

算术提升

1.同种类型的数据可直接进行算术运算,但是对与不同类型数据之间进行算术运算是需要转化为同种类型后,才能运算。而在这个过程就称为算术转换。

image-20210819153207902

练一练

image-20210819154443215

image-20210819154402411

相关文章
|
7月前
|
存储 C语言 C++
截断&&整型提升&&算数转换
截断&&整型提升&&算数转换
|
7月前
|
存储
【BigDecima】不可变的,任意精度的有符号十进制数。
【BigDecima】不可变的,任意精度的有符号十进制数。
64 0
|
C语言
C语言:截断+整型提升+算数转换练习
截断+整型提升+算数转换练习
74 0
|
4月前
|
C语言
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
这篇文章展示了如何使用栈(包括顺序栈和链栈)实现将十进制数值转换成八进制数值的方法,通过C语言编程演示了两种栈的实现方式和使用场景。
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
|
7月前
|
C语言
关于整型提升与截断的一道题目
关于整型提升与截断的一道题目
27 0
|
7月前
|
编译器 C语言 C++
整形提升和算数转换
整形提升和算数转换
45 0
|
存储 人工智能 编译器
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
502 0
|
存储 C语言
有符号位与无符号位超超超详解!!!
有符号位与无符号位超超超详解!!!
286 0
|
C语言 索引
操作符续(整型提升与算术转换)
操作符续(整型提升与算术转换)
91 0
|
C++
C++ 各种无符号整型能够在溢出之前计算出斐波那契数列的最大项数是几?答案是24、47、93
C++ 各种无符号整型能够在溢出之前计算出斐波那契数列的最大项数是几?答案是24、47、93
85 0