扩展和截断
扩展
无符号数扩展:将一个无符号数转换为一个更大的数据类型,我们只需要简单的在二进制序列前面添加 0 即可
有符号数的扩展:将其补码数字转换为一个更大的数据类型,我们需要在开头添加符号位,即在前面补符号位
如果我们原始位为[xw-1 , xw-2 , … , x2 , x1 , x0],那么扩展k位后就可以表示为:[xw-1 ,xw-1 ,...,xw-1 , xw-2 , … , x2 , x1 , x0],其中增加有k个xw-1
截断
将一个 w 位的数 [xw-1 , xw-2 , … , x2 , x1 , x0] 截断为一个 k 位数字时,我们会丢弃高 w-k 位。得到 [xk-1 , xk-2 , … , x2 , x1 , x0]
对于无符号截断公式为:
而对于有符号(补码编码)的截断,我们只需要多加一步,将无符号编码转换为补码编码就可以了。
结果为