深入理解计算机操作系统(2.2.7)

来源:互联网 发布:2014年中国进出口数据 编辑:程序博客网 时间:2024/05/19 03:23

截断数字

无符号数截断

当一个w位的数截断位一个k位的数时,我们会丢掉w-k位。简单说就是截断几位就从最高位开始去掉几位。
原理:
这里写图片描述

举例:
101111(47)截断两位,那么截断后的二进制为1111。
47%2^4 = 15,也就是1111。

补码数截断

原理:
这里写图片描述
当把一个数x截断为k位时,步骤:

  1. x mod 2^k。
  2. 用补码解释二进制数。

举例:将x=53191从int类型转为short类型 。
53191的二进制数表示为00000000 00000000 10110101 0010111,截断为16位之后为10110101 0010111,再将16位二进制数用补码解释,也就是把无码数转为不码数,因为无符号数10110101 0010111表示的值53191>2^15-1(short类型所能表示的最大正数),所以补码数表示为53191-65536 = -12345。

原创粉丝点击