案例
默认为8总位数
- 数值绝对值:5 → 二进制
101
- 总位数8位,数值部分占7位 → 需补零位数 = 8-1-3=4位
- 符号位为0,补零后数值部分为
0000101
原码:00000101
反码:00000101
补码:00000101
- 数值绝对值:-5 → 二进制
101
- 总位数8位,数值部分占7位 → 需补零位数 = 8-1-3=4位
- 符号位为0,补零后数值部分为1
000101
原码:
10000101
反码:11111010
补码:11111011
解读:利用除2取余,根据我之前说的口诀“
除基取余,逆序写余”发现为101,而我们默认总位数为8(这玩意通常会跟你说是多少的,没有说就是默认为8)。而正整数通常,原码反码,包括补码都是相同的,而负整数反码,则除了符号位,其余进行取反,例如10000101取反为11111010,补码则在反码的基础上加1即可。
解读2:有的小伙伴可能不知道“
总位数8位,数值部分占7位 → 需补零位数 = 8-1-3=4位”是什么意思,我可以说一下,8为总位数,1是符号数(正为0,负为1),3则为5的二进制位数(也就是101),我们在写原码时通常需要补0,可以通过该方法,发现需要补几个0
总位数8-符号位1-二进制数值则为3=这里就可以算出需要补4个0了
也就101 正数为00000101 负数为10000101
以上就是原码,反码,补码的相关知识点了