数在计算机中是以二进制格式形式表示的
数分为有符号数和无符号数。
原码、反码、补码都是有符號定点数的表示方法
一个有符号定点数的最高位为符号位,0是正1是副。
以下都以8位整数为例
原码就是这个数本身的二进制格式形式。
正数的反码和补码都是和原码相同
负数的反码是将其原码除符号位之外的各位求反
负数的补码是将其原码除符号位之外的各位求反之後在末位再加1。
一个数和它的补码是可逆的
第一是为了能让计算机执行减法:
第二个原因是为了统一正0和负0
这两个数其实都是0,但他们嘚原码却有不同的表示
但是他们的补码是一样的,都是
特别注意如果+1之后有进位的,要一直往前进位包括符号位!(这和反码是不哃的!)
=(最高位溢出了,符号位变成了0)
这个补码表示的哪个数的补码呢
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围昰
比n位原码能表示的数多一个又例:
反码:01011 //正数时反码=原码
补码:01011 //正数时,补码=原码
反码:10100 //负数时反码为原码取反
补码:10101 //负数时,补码为原码取反+1
1、补码是把减法用加法计算采用进位丢的方法得到结果时应该补足的数。
2、8位二进制格式补码的计算步骤是:
a)先按位取反也就是把1变成0,把0变成1得到反码。
b)把得到反码末位再加1即得到补码
c)例如:,先按位取反得到再把加上1,得到这就是补码。
拍照搜题秒出答案,一键查看所有搜题记录
拍照搜题秒出答案,一键查看所有搜题记录
拍照搜题秒出答案,一键查看所有搜题记录
你对这个回答嘚评价是
你对这个回答的评价是?