隐式类型转换
1.定义
1.c的整形算术运算总是至少以缺省整形类型的精度来进行的。
2.为了获取这个精度,像字符型,短整形在使用之前会转换为整形,这种转换被称为整形提升
3.整形提升时补最高位的数
2.整形提升例子
char,short类型在计算时都会提升为int类型,可能平时我们不会察觉,但它确实存在
这里为什么c是-126而不是130呢,其实就是整形提升后发生截断,接下来逐行解析
小于整形的类型在参与计算时先发生提升,后再截断
这里我使用的是vs2019,在这里char是有符号的,也就是说这里发生截断后c的最高位变为1了,所以符号发生了变化
这里我们其实看到的就是原码,由于不需要再存入,所以不需要截断
3.char的取值范围和一些技巧
1.有符号的char取值是-128~127
2.无符号的char取值是0~255
注意负数一定要转换为原码来看哦
所以从这可以看出char最多存127,130肯定放不下啦
—————————— 重点 ——————————
从数学上,130就是127+3,从上面图可以看出,在char中127+1是-128,再加1是-127,再加1是-126,所以最终答案就是-126啦
好的,以上就是全部内容啦