因此,我的教授有一个问题要列出所有正数和负数,这些数字可以用一个,二个补码和符号量表示:
Using 4 bit numbers, for example (5)10 = ( 0101)2 Write all positive numbers and all negative numbers that can be represented with four bits in sign-magnitude, one’s complement, and two’s complement.
现在,我不是在寻找澄清的答案 .
-
表示符号幅度,第一位表示数字的符号 . 所以在提供的例子中,负五是-5 =(1101),那些补数=(0101)二进制补码(1010)
-
符号幅度仅允许三位显示数字,一位用于符号(从右到左的前导位 . )这意味着我们只有8种组合 . 这是0-7和-0-(-6)之间的数字我们有16个?所以0-15和-0 - ( - 15)
谁能更好地解释这个问题?
1 回答
以下是您提到的所有三种表示技术的简要说明 .
标志和幅度表示
在这种表示中,我们可以用任意数量的位表示数字(2的幂) . 表示中有两部分 . 标志和大小,顾名思义 .
如果我们想用n个位表示一个数字,
第一位总是代表数字的符号 . 即0表示正数,1表示负数 .
其余位(n-1)表示二进制数的大小 .
例如如果要使用8位表示25和-25:(25)10 = 0011001和(-25)10 = 10011001
补充
由于二进制数系统只有2位数(0和1),因此一位数的补码是另一位数 . 即,0的补码是1,反之亦然 .
一个补充
在该表示中,没有特定位来表示符号,但MSB(最高有效位)可用于确定数字的符号 . 即,如果数字为正,则MSB为0,如果数字为负,则MS为1 . 使用二进制数,并且还使用特定的位大小 . (例如8,16,32等位) .
如果数字是正数
将数字转换为二进制
将数字设置为特定位大小
如果数字为负数
将数字转换为二进制
将数字设置为特定位大小
获取该值的补码
例如再次采用前面的例子
(25)10
将数字转换为二进制 - >(11001)2
将数字设置为特定位大小 - >(0001 1001)
(-25)10
将数字转换为二进制 - >(11001)2
将数字设置为特定位大小 - >(0001 1001)
获取该值的补充 - >(1110 0110)
两个补充
这种表示技术与One的补语表示非常相似 . 主要区别在于当数字为负时,在获得补码后将1加到LSB(最低有效位) .
例如让我们举个相同的例子
(25)10
将数字转换为二进制 - >(11001)2
将数字设置为特定位大小 - >(0001 1001)
(-25)10
将数字转换为二进制 - >(11001)2
将数字设置为特定位大小 - >(0001 1001)
获取该值的补充 - >(1110 0110)
将1添加到LSB - >(1110 0110)1 =(1110 0111)