负数的 二进制表示

首先理解以下概念
原码:

正数原码就是最简单的二进制表示,比如5 就是0000 0101 有八位的话
负数原码 -5 就是有最左边以为是符号位 1000 0101

如果用负数的原码表示buye 只能表示 -127~127之间的数,因为0会有两种表示方法 0000 0000 和 1000 0000这导致一个问题,只能表示255个数。即使考虑用1000 0000表示-128,又引出一个问题,+1(0000 0001)-1(1000 0001)之和为(1000 0010)不是0,结果是-2。
如何能表示-128~127个数呢,并且符合加减逻辑呢。
用负数的补码方式。
又引入反码的定义。
正数和0的原码,反码,补码都一样。
负数的反码是除符号位外其他位数取反,补码是反码加1。如
-1的原码 1000 0001,反码 1111 1110,补码1111 1111
-2的原码 1000 0010 反码 1111 1101, 补码 1111 1110
-3的原码 1000 0011 反码 1111 1100 , 补码 1111 1101
-1 + -2 = -3 在二进制中相当于直接相加,舍弃最高位。
-126 的原码 1111 1110 反码 1000 0001, 补码1000 0010
-127 的原码 1111 1111 反码1000 0000, 补码1000 0001
-128的补码就是1000 0000,对于8位,它没有反码和原码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值