二进制的计算问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 03:35:12
近日初学计算机中数据的表示,遇到以下问题,我觉得自己陷入某个怪圈出不来了,还请大家帮忙

二进制减法运算
0110-1010=1100(有借位,借1当作10)

十进制减法运算
25-52=-27(按小学的方法)

为何二进制的减法(小数减大数)不按照这样计算:大数减小数,取对应的负数

这样来说,二进制的例子如上,用十六进制来说
9E58-EBBC=B29C(有借位,借1当作16)
和二进制的减法方式一样

但假设十进制按照此法呢?
25-52=73(十位上2-5不够,借1当作10)

挺白痴一问题,呵呵

是因为你这样用二进制或十六进制无法表示负数。
使用负数的标准方法是:
一个字节(1byte,8bit,也就是8位二进制),其中首位表示正负,其他7位表示数,一个字节能表示的范围是-128~127。
若不需要负数,则8位全表示数(你的例子是4位全表示数,或16位全表示数),范围为0~255

二进制减法,是按照加法进行计算的
如5-3 认为是 5+(-3)
将-3用补码表示

十进制是借一当十
二进制那个借一当10,这个是10的值相对于十进制的2