一.非负数与负数编码以及最值
非负数编码:
负数编码(采用补码即原码取反+1):
故对于四位补码,最大值为7,最小值为-8
所以各类型负数/非负数范围:
不同字节无符号最大值
不同字节有符号最大值
不同字节有符号最小值
例子1:有符号强制转换无符号会存在问题
这是因为虽然位模式不变,但是解释位的方式改变了。
例子2:
a隐式转换为了无符号数.
二.数据类型转换:
1.较小数据类型转换为较大数据类型
结论:无论负数还是非负数都可以保持数值不变,无负号补0,有负号补1
2.较大数据类型转换为较小数据类型
对于非负数
上述例子可以看出,int 转short 丢掉高16位。
【合集】CSAPP-深入理解计算机系统_哔哩哔哩_bilibili