找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 419|回复: 4
打印 上一主题 下一主题
收起左侧

二进制补码及与原码的互相转换方法

[复制链接]
跳转到指定楼层
楼主


大沙把一些基础的知识说清楚,本文介绍二进制补码及与原码的转换方法。
先说原码,原码‌是一种计算机中对数字的二进制定点表示方法。在原码表示法中,数值前面增加了一位符号位,最高位为符号位,0表示正数,1表示负数。其余位表示数值的大小。
二进制补码‌是一种用于表示有符号整数的二进制编码方式,常用于‌计算机系统中。在补码系统中,一个数字的补码是通过对其原码进行位取反(即一补数或反码),然后再加1得到的。补码的最大优点是可以在加法或减法处理中,不需要因为数字的正负而使用不同的计算方式。‌正数的补码与原码相同,负数的补码是其反码加1‌。‌
‌补码的计算方法‌:
·‌正数的补码‌:与原码相同。例如,+9的8位二进制补码是00001001。
·‌负数的补码‌:首先对负数的原码进行位取反(除了符号位),然后再加1。例如,-9的8位二进制补码是11110110。
‌补码在计算机系统中的应用‌:
在计算机系统中,所有的整数都是以二进制补码的形式存储和计算的。使用补码可以简化加减法运算,因为减法可以通过加上一个数的补码来实现。此外,补码系统中的0只有一种表示方式,这使得判断一个数是否为0更为简单。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1064915 发表于 2024-9-20 08:50 | 只看该作者
‌-9的8位二进制补码是11110111。‌‌

补码的计算过程
‌原码‌:正数的原码就是其本身,负数的原码是其绝对值的二进制表示。例如,9的原码是00001001,-9的原码是10001001。
‌反码‌:正数的反码与原码相同,负数的反码是其原码的每一位取反(0变1,1变0),符号位除外。例如,-9的反码是11110100。
‌补码‌:补码是反码加1。例如,-9的补码是11110100 + 1 = 11110101,但这是8位二进制表示的错误表示,实际正确的补码是11110111。
通过上述步骤,我们可以得到-9的8位二进制补码为11110111。
回复

使用道具 举报

板凳
ID:514317 发表于 2024-10-2 13:33 | 只看该作者
原码‌10001001---反面码11110110----补码11110111     应该是这个过程吧  
回复

使用道具 举报

地板
ID:278457 发表于 2024-10-4 02:41 | 只看该作者
对的,谢谢学习到了。
回复

使用道具 举报

5#
ID:496636 发表于 2024-10-5 13:36 | 只看该作者
通俗的说一下吧,如果是二位十进制,你可以表示0-99之间的整数,如果想表示负数,那只能表示一半的整数和一半的负数了。差个负数的一对数,互补,意思是它们加起来为100,刚好溢出向第三位进位。
那么如果是一个字节,那么它们相加为256,如果二个字节相加为65536
然后我们简单用一字节来讨论,9用二进制来表示为0000  1001,把它各位取反则为1111 0110,这样加起来就是各位都是1,还得加上1才能向上进位,然后一字节的八位都是0,所以各位取反后还得加1后才是负数的反码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表