补码解释

补码是最常见的有符号数的计算机表示方式。在这个定义中,将字的最高有效位解释为负权(negative weight)。

补码编码的定义

补码算法
  1. 当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C语言会隐式地将有符号参数强制类型转换为无符号数,并假设这两个数都是非负的,来执行这个运算。
  2. 当把short转换成unsigned int时,我们要先改变大小,之后再完成从有符号到无符号的转换。这个规则是C语言标准要求的。
short  sx = -12345;
unsigned uy = sx; //4294954951
-1<0;//true
-1<0u;//false
(unsigned)-1>-2;//true
  1. 补码的非
    执行补码非的一种方法是对每一位求补,再对结果加1。在C语言中,对于任意整数值x,计算表达式-x和~x+1得到的结果完全一样。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容