vault backup: 2026-07-04 12:43:14
This commit is contained in:
@@ -29,6 +29,8 @@
|
||||
**表示范围**(n位):
|
||||
$$0 \sim 2^n - 1$$
|
||||
|
||||
其中 $n$ 为二进制位数。比如16位无符号数范围:0 ~ 2¹⁶-1 = 0 ~ 65535。
|
||||
|
||||
> [!example] 示例
|
||||
> 16位无符号数:0 ~ 65535
|
||||
|
||||
@@ -57,9 +59,13 @@ $$0 \sim 2^n - 1$$
|
||||
**整数原码**:
|
||||
$$[x]_{原} = \begin{cases} 0,x & 2^n > x \geq 0 \\ 2^n - x & 0 \geq x > -2^n \end{cases}$$
|
||||
|
||||
其中 $x$ 为真值,$n$ 为数值部分位数(不含符号位)。正数原码直接在符号位填0后跟数值;负数原码符号位填1,数值部分为 $2^n - x$(即模减去真值的绝对值)。
|
||||
|
||||
**小数原码**:
|
||||
$$[x]_{原} = \begin{cases} x & 1 > x \geq 0 \\ 1 - x & 0 \geq x > -1 \end{cases}$$
|
||||
|
||||
正小数原码就是本身;负小数原码为 $1-x$(即1减去真值,等价于1加上绝对值)。
|
||||
|
||||
> [!example] 示例
|
||||
> - x = +1110 → [x]原 = 0,1110
|
||||
> - x = -1110 → [x]原 = 1,1110
|
||||
@@ -87,9 +93,13 @@ $$[x]_{原} = \begin{cases} x & 1 > x \geq 0 \\ 1 - x & 0 \geq x > -1 \end{cases
|
||||
**整数补码**:
|
||||
$$[x]_{补} = \begin{cases} 0,x & 2^n > x \geq 0 \\ 2^{n+1} + x & 0 > x \geq -2^n \end{cases}$$
|
||||
|
||||
其中 $x$ 为真值,$n$ 为数值部分位数。正数补码和原码相同;负数补码为 $2^{n+1} + x$(即模 $2^{n+1}$ 加上真值,等价于原码取反加1)。8位补码的模是 $2^8 = 256$。
|
||||
|
||||
**小数补码**:
|
||||
$$[x]_{补} = \begin{cases} x & 1 > x \geq 0 \\ 2 + x & 0 > x \geq -1 \end{cases}$$
|
||||
|
||||
正小数补码就是本身;负小数补码为 $2+x$(模为2,即取反加1)。
|
||||
|
||||
> [!example] 示例
|
||||
> - x = +1010 → [x]补 = 0,1010
|
||||
> - x = -1010 → [x]补 = 2^5 + (-1010) = 100000 - 1010 = 1,0110
|
||||
@@ -112,9 +122,13 @@ $$[x]_{补} = \begin{cases} x & 1 > x \geq 0 \\ 2 + x & 0 > x \geq -1 \end{cases
|
||||
**整数反码**:
|
||||
$$[x]_{反} = \begin{cases} 0,x & 2^n > x \geq 0 \\ (2^{n+1}-1) + x & 0 \geq x > -2^n \end{cases}$$
|
||||
|
||||
其中 $x$ 为真值,$n$ 为数值部分位数。正数反码和原码相同;负数反码为 $(2^{n+1}-1)+x$,等价于原码除符号位外每位取反。反码是补码减1(补码=反码+1)。
|
||||
|
||||
**小数反码**:
|
||||
$$[x]_{反} = \begin{cases} x & 1 > x \geq 0 \\ (2-2^{-n}) + x & 0 \geq x > -1 \end{cases}$$
|
||||
|
||||
其中 $n$ 为小数部分位数。负小数反码为 $(2-2^{-n})+x$,即 $1.111...1$(n个1)加上真值。
|
||||
|
||||
> [!example] 示例
|
||||
> - x = +1101 → [x]反 = 0,1101
|
||||
> - x = -1101 → [x]反 = 1,0010
|
||||
@@ -135,6 +149,8 @@ $$[x]_{反} = \begin{cases} x & 1 > x \geq 0 \\ (2-2^{-n}) + x & 0 \geq x > -1 \
|
||||
**整数移码**:
|
||||
$$[x]_{移} = 2^n + x \quad (-2^n \leq x < 2^n)$$
|
||||
|
||||
其中 $x$ 为真值,$n$ 为数值部分位数,$2^n$ 是偏移量。移码=补码符号位取反,本质是把所有数都加上偏移量变成正数,这样直接比较二进制大小就能比较真值大小。8位移码偏移量为128。
|
||||
|
||||
> [!example] 示例
|
||||
> - x = +1010 → [x]移 = 1,1010
|
||||
> - x = -1010 → [x]移 = 0,0110
|
||||
|
||||
Reference in New Issue
Block a user