gpt4 book ai didi

twos-complement - 如何用2的补码表示小数的负数?

转载 作者:行者123 更新时间:2023-12-03 11:53:04 27 4
gpt4 key购买 nike

所以我想代表数字-12.5。因此12.5等于:

001100.100

如果我不计算分数,那么它很简单, -12是:
110100

但是-12.5是多少?是 110100.100吗?如何计算此负分数?

最佳答案

对于十进制数字系统,每个数字位置(或列)表示(从右到左读取一个数字):单位(即10 ^ 0),十进制(即10 ^ 1),百(即10 ^ 2)等。

对于无符号二进制数,基数为2,因此每个位置变为(再次从右向左读取):1(即2 ^ 0),2(即2 ^ 1),4(即2 ^ 2)等。

例如

2^2 (4), 2^1 (2), 2^0 (1).

在带符号的二进制补码中,最高有效位(MSB)变为负数。因此,它代表数字符号:“1”代表负数,“0”代表正数。

对于三位数,行将包含以下值:
-4, 2, 1
0 0 1 => 1
1 0 0 => -4
1 0 1 => -4 + 1 = -3

定点(分数)系统保存的位的值不变。列值遵循与以前相同的模式,以幂为底数(2),但幂变为负数:
2^2 (4), 2^1 (2), 2^0 (1) . 2^-1 (0.5), 2^-2 (0.25), 2^-3 (0.125)

-1将始终为 111.000-0.5加上0.5: 111.100
在您的情况下, 110100.10等于-32 + 16 + 4 + 0.5 = -11.5。您所做的是创建-12,然​​后加上0.5而不是减去0.5。

您真正想要的是-32 + 16 + 2 + 1 + 0.5 = -12.5 = 110011.1

关于twos-complement - 如何用2的补码表示小数的负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com