¥定点小数[x]原={x 1−x=1+∣x∣0≤x<1−1<x≤0
定点整数[x]原={0,x 2n−x=2n+∣x∣0≤x≤2n−2n<x≤0
定点小数[x]补={x 2+x=2−∣x∣0≤x<1−1≤x<0
定点整数[x]补={0,x 2n+1+x=2n+1−∣x∣0≤x<2n−2n≤x<0
定点整数[x]移=2n+x −2n≤x<2n
由数求码:
符号位 + 数字表示位,得到原码。
在符号位为 1 时:
- 反码 = 数字表示位取反(原码)
- 补码编码 = 反码编码 + 1,补码表示数 = 反码表示数 - 1
- 移码 = 符号位取反(补码)
不考虑符号位:
补码:code = encode((256 + x) mod 256)
移码:code = encode(128 + x)
由码求数:
原码 -> 数
在符号位为 1 时:
数字位取反 (反码) = xor (反码,128 - 1)-> 原码 -> 数
符号位取反 (补码) -> 移码数 - 128 -> 数
不考虑符号位:
补码:x = decode(code^128) - 128
移码:x = decode(code) - 128