(易懂)负数的二进制表示方法

您所在的位置:网站首页 二进制计算方法5怎么表示 (易懂)负数的二进制表示方法

(易懂)负数的二进制表示方法

2024-07-05 17:24| 来源: 网络整理| 查看: 265

一:表示法: 1、正数5的表示法 假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

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

二、概念: 1、原码: 一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。 比如 00000000 00000000 00000000 00000101 是 5的 原码。 10000000 00000000 00000000 00000101 是 -5的 原码。

备注: 比如byte类型,用2^8来表示无符号整数的话,是0 - 255了;如果有符号, 最高位表示符号,0为正,1为负,那么,正常的理解就是 -127 至 +127 了.这就是原码了,值得一提的是,原码的弱点,有2个0,即+0和-0(10000000和00000000);还有就是,进行异号相加或同号相减时,比较笨蛋,先要判断2个数的绝对值大小,然后进行加减操作,最后运算结果的符号还要与大的符号相同;于是,反码产生了。

2、反码 正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反[每一位取反(除符号位)]。 取反操作指:原为1,得0;原为0,得1。(1变0; 0变1) 比如:正数00000000 00000000 00000000 00000101 的反码还是 00000000 00000000 00000000 00000101 负数10000000 00000000 00000000 00000101 的反码则是 11111111 11111111 11111111 11111010。

反码是相互的,所以也可称:10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。

备注:还是有+0和-0,没过多久,反码就成为了过滤产物,也就是,后来补码出现了。

3、补码 正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1. 比如:10000000 00000000 00000000 00000101 的补码是:11111111 11111111 11111111 11111010。 那么,补码为: 11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

备注 1、从补码求原码的方法跟原码求补码是一样的 ,也可以通过完全逆运算来做,先减一,再取反。 2、补码却规定0没有正负之分

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3