汇编-负数表示法

负数的二进制表示方法

1、正数5的表示法
假设有一个int类型的数, 值为5, 那么, 我们知道它在计算机中表示为:

00000000 00000000 00000000 00000101

5转换成二制是101, 不过int类型的数占用4字节(32位) , 所以前面填了一堆0。

2、负数-5的表示法

现在想知道,-5在计算机中如何表示?在计算机中,负数以原码的补码形式表达。

原码:

  一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。

  比如:

  00000000 00000000 00000000 00000101是5的原码。
  10000000 00000000 00000000 00000101是-5的原码。

反码:

  正数的反码与原码相同,负数的反码是对该数的原码除符号位外各位取反。

  比如:

    正数00000000 00000000 00000000 00000101的反码还是 00000000 00000000 00000000 00000101

    负数10000000 00000000 00000000 00000101的反码则是 11111111 11111111 11111111 11111010

补码:

  正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

  比如:10000000 00000000 00000000 00000101的补码是:

            11111111 11111111 11111111 11111011

所以,-5在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFFFF

 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(355)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-08-10 C++类型转换
点击右上角即可分享
微信分享提示

目录导航