关于有符号整数的补码编码的一点经验
以一个字节(8位)编码为例,如果采用补码,则表示的整数(有符号数)范围是[-128,127]。
如果把该二进制编码表示为十进制,则8位编码对应的十进制为0-255,(或者说表示为无符号数就是0-255)
其中[0-127]表示正整数,也是该数本身(对应的无符号数和有符号数一样且都是正整数),绝对值递增
[128-255]表示负整数,其中128表示-128 ,255 表示 -1,也就是说绝对值是递减的。
所以根据编码快速求出编码前的数的方法之一是:如果编码为0-127,那么编码前的数也是0-127,如果编码为128-255,假设为x,那么编码前的数的真值就是-(256-x)。