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

简介:

@[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月前
LeetCode题 338比特位计数,20有效的括号,415字符串相加
LeetCode题 338比特位计数,20有效的括号,415字符串相加
70 0
|
7月前
|
编译器 C语言 C++
整形提升和算数转换
整形提升和算数转换
45 0
|
7月前
|
C语言
关于整型提升与截断的一道题目
关于整型提升与截断的一道题目
27 0
|
存储 人工智能 编译器
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)
502 0
|
存储 C语言
有符号位与无符号位超超超详解!!!
有符号位与无符号位超超超详解!!!
286 0
|
C语言 索引
操作符续(整型提升与算术转换)
操作符续(整型提升与算术转换)
91 0