分数的2的补码表示?

Tro*_*ach 3 math binary representation

我有点迷失了.我需要使用两个小数位 0.(a-1)(a-2)

这样,现在我可以使用.00 .01 .10.11 但我需要负数(2的补数)也,所以会.10-.5?还是会-.25?同样的.11,那将是-.75?还是会-.5?我很确定在两种情况下它都会成为前者,但我并不完全正面.

Ada*_*iss 5

在二进制补码表示法中,负数的所有最高有效位都设置为1.假设您将这些数字存储为8位,在"二进制点"的右侧存储2.

根据定义,x + -x = 0我们可以写:

0.5  +  -0.5 = 0.10 + 111111.10 = 0   // -0.5  = 111111.10
0.25 + -0.25 = 0.01 + 111111.11 = 0   // -0.25 = 111111.11
0.75 + -0.75 = 0.11 + 111111.01 = 0   // -0.75 = 111111.01
Run Code Online (Sandbox Code Playgroud)

等等.

使用这样的8位,你可以存储的最大数字是

011111.11 = 31.75
Run Code Online (Sandbox Code Playgroud)

最不正数的是

000000.01 = 0.25
Run Code Online (Sandbox Code Playgroud)

最负数是

111111.11 = -0.25
Run Code Online (Sandbox Code Playgroud)

而最小的(即最负面的)是

100000.00 = -32
Run Code Online (Sandbox Code Playgroud)