负数的表示

  

       正数的原码,反码,补码都是一样的。

       负数的原码用其绝对值的正数原码表示,反码在原码基础上求反,补码在反码的基础上加1. 

  原码:将一个整数,转换成二进制,就是其原码。
               如单字节的5的原码为:0000 0101;-5的原码为1000 0101。

 反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。
               如单字节的5的反码为:0000 0101;-5的反码为1111 1010。

 补码:正数的补码就是其原码;负数的反码+1就是补码。
               如单字节的5的补码为:0000 0101;-5的原码为1111 1011。

  在计算机中,正数是直接用原码表示的,如单字节5,在计算机中就表示为:0000 0101。
                          负数用补码表示,如单字节-5,在计算机中表示为1111 1011。
  单片机中处理: 先取反,再加1即可。
Uint8 num_a;
Int8 num_b = -120;
num_a = ~num_b + 1; // 获得相应的正数

可以参考以下文章:
https://www.cnblogs.com/dingyingsi/p/6075967.html

https://www.cnblogs.com/hello-yz/p/3249175.html
posted @ 2019-12-16 16:33  xiaokangkp  阅读(1255)  评论(0编辑  收藏  举报