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

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

一:表示法: 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.

相关推荐

从小美到大是一种什么体验?来认识下超级MODEL 汪真禛!
再不疯狂就晚了《航海王 启航》突破凯文迪修测评
中国足球彩票2006世界杯竞猜
betvip5365

中国足球彩票2006世界杯竞猜

📅 07-10 👁️ 6448
韩庄八街价目表引发热议:2025年物价到底涨没涨?
八月新片:暑假已过半,你久等的那部电影上映了吗?
原始传奇白日门的森林雪人王什么时候刷新 坐标在哪
手持机有哪些?
365dni讲解

手持机有哪些?

📅 09-19 👁️ 6147
问道手游酷酷龙幻化一次加多少成长
365投注规则

问道手游酷酷龙幻化一次加多少成长

📅 08-23 👁️ 1668
关于扭蛋机,你了解多少?
365投注规则

关于扭蛋机,你了解多少?

📅 08-25 👁️ 4219