数据结构之----原码、反码、补码

数据结构之----原码、反码、补码

什么是原码?

原码:我们将数字的二进制表示的最高位视为符号位,其中 0 表示正数,1 表示负数,其余位表示数字
的值。

什么是反码?

反码:正数的反码与其原码相同,负数的反码是对其原码除符号位外的所有位取反。

什么是补码?

补码:正数的补码与其原码相同,负数的补码是在其反码的基础上加 1 。

下图是原码、反码和补码之间的转换方法。

在这里插入图片描述

为什么要使用原码?

众所周知,计算机所能读懂的语言是二进制编码,而二进制编码就是我们这里所说的原码

为什么要使用反码?

原码虽然说很直观,但是它也会存在一些局限性。如,负数的原码是不能直接的用于运算的
例:1+(-2),得到的结果是 -3 并不是 -1,这明显是错误的。
在这里插入图片描述
所以,为了解决这类问题,计算机引入了反码。如果说我们先将原码转为反码,在计算完1+(-2)后,再将结果转换为原码,那么得出的就是正确的结果 -1。
在这里插入图片描述

为什么要使用补码?

在原码中,我们都知道数字零有两种表达方式+0 和 −0 ,但是这意味着0是两个不同的二进制编码,它可能会带来歧义。如在判断条件中,如果没有正确区分 +0和- 0,就会导致判断错误。
而如果需要正确的对0进行区分就要进行额外的操作,但是这种操作可能会降低计算机的效率。

在这里插入图片描述
并且反码和原码一样,也会存在这个问题,所以为了解决这个问题,计算机引入了补码。

下面是负零的原码、反码、补码的转换过程:
在这里插入图片描述
转换原理是在反码的基础上加一,而加一这个操作会产生进位,但是byte类型的长度只有8bite,所以溢出的第九位的 1会被舍弃。
也就是说 负零的补码为 0000 0000 ,与正零的补码相同。这意味着在补码表示中只存在一个零,
正负零歧义从而得到解决。

为什么byte的取值区间为[-128,+127]?

我们注意到,区间 [−127, +127] 内的所有整数都有对应的原码、反码和补码,并且原码和补码之间是可以互相转换的。然而,补码 1000 0000 是一个例外,它并没有对应的原码。

根据上面提到的转换方法我们可以算出 1000 0000的原码是 0000 0000
这显然是不对的,因为该原码表示数字 0 ,它的补码应该是自身 0。
所以计算机将这个特殊的补码 1000 0000 代表 -128

实际上,(−1) + (−127) 在补码下的计算结果就是 −128 。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络攻击(二)--情报搜集阶段

4.1. 概述 在情报收集阶段,你需要采用各种可能的方法来收集将要攻击的客户组织的所有信息,包括使用社交网络、Google Hacking技术、目标系统踩点等等。 而作为渗透测试者,你最为重要的一项技能就是对目标系统的探查能力,包括获知…

文生图:AE/VAE/VQVAE/VQGAN/DALLE模型

文生图模型演进:AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型本文中我们回顾了 AE、VAE、VQ-VAE、VQ-VAE-2 以及 VQ-GAN、DALL-E、DALL-E mini 和 CLIP-VQ-GAN 等 8 中模型,以介绍文生图模型的演进。https://mp.weixin.qq.com/s/iFrCEpAJ3WMhB-01lZ_qIA 1…

pta模拟题(7-38 完全二叉树的层序遍历)

一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。 给定一棵完全…

GaussDB数据库语法及gsql入门

一、GaussDB数据库语法入门 之前我们讲了如何连接数据库实例,那连接数据库后如何使用数据库呢?那么我们今天就带大家了解一下GaussDB,以下简称GaussDB的基本语法。 关于如何连接数据库,请戳这里。 学习本节课程之后&#xff0c…

【开题报告】基于SpringBoot的消防知识科普平台的设计与实现

1.选题背景 消防知识科普平台的设计与实现是为了提高公众对于消防安全的认知和应对能力,促进社会消防文化的普及和发展。在中国,火灾事故时有发生,造成了重大人员伤亡和财产损失。因此,建立一个基于Spring Boot的消防知识科普平台…

docker---网络

docker的网络模式: 1、桥接模式:创建docker时不需要指定网络类型,默认模式。 2、host模式: 容器将不会虚拟出自己的网卡,也没有自己的ip地址,全部使用宿主机的ip和端口。 3、container模式:容器和容器之间…

第五届计算机能力挑战赛国赛C语言组题解(专科组)

前言:   前两天计算机能力挑战赛国赛结束了,拿着题做了一遍,发现难度真的不大,比省赛简单多了,只是有时候可能有的同学拿着题,没认真仔细去读,或者说紧张了导致自己发挥不好吧。以下是个人的题…

【运维】将Linux的硬盘当内存用,Linux内存不够用的时候如何用硬盘提升内存

文章目录 内存不够用,可以用硬盘当内存吗如何取消这种交换空间交换空间是优先使用的还是说原始内存是会被优先使用的 内存不够用,可以用硬盘当内存吗 是的,可以使用硬盘作为虚拟内存来扩展容器中的内存。这个过程被称为“交换”或“交换空间…

Django 模型操作-分页(七)

一、连接MySql数据库 1、先安装MySQL 2、再安装MySQL驱动 使用mysqlclient pip install mysqlclient 如果上面的命令安装失败, 则尝试使用国内豆瓣源安装: pip install -i https://pypi.douban.com/simple mysqlclient 二、在settings.py中配置 三、 book表的数据…

Android系统启动过程-uBoot+Kernel+Android

摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链接我会一一附上…

1009 说反话

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小…

【机器学习实训项目】黑色星期五画像分析

目录 前言 一、项目概述 1.1 项目简介 1.2 项目背景 1.3 项目目标 二、数据分析 2.1 导入库 2.2 数据基本信息 三、画像分析 3.1 画像1:消费金额Top10 3.2 画像2:高频消费Top10 3.3 画像3:人均消费金额Top10 3.4 画像4:男女消费对…

创投课程第四期 | Web3一级市场投资框架的演变及投资人能力框架的构成

协会邀请了来自Zonff Partners的合伙人——Colin,作为VC创投课程第4期的嘉宾,在北京时间12月9日(周六)下午14:00 PM-15:00 PM于蚂蚁链科技产业创新中心进行线下分享,届时将与所有对Web3投资、创业心怀热忱的朋友们共同探讨《WEB3一级市场投资…

双向链表(数据结构与算法)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

程序启动时访问了未初始化的类指针引发内存访问违例导致程序崩溃的问题排查

目录 1、问题说明 2、使用Windbg动态调试去初步分析 3、使用Windbg详细分析 4、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门…

20、XSS——XSS跨站脚本

文章目录 一、XSS漏洞概述1.1 XSS简介 二、XSS漏洞分类2.1 反射型XSS2.2 存储型XSS2.3 DOM型XSS 三、XSS payload构造以及变形3.1 XSS payload构造3.2 XSS payload 变形 一、XSS漏洞概述 1.1 XSS简介 XSS被称为跨站脚本攻击(Cross-site scripting)&…

linux dpdk 介绍

DPDK(Data Plane Development Kit)是一个由英特尔发起的开源项目,旨在提供一个快速、高性能的数据平面开发工具包,使网络应用能够在通用处理器上实现网络功能虚拟化(NFV)和软件定义网络(SDN&…

k8s volumes and data

Overview 传统上,容器引擎(Container Engine)不提供比容器寿命更长的存储。由于容器被认为是瞬态(transient)的,这可能会导致数据丢失或复杂的外部存储选项。Kubernetes卷共享 Pod 生命周期,而不是其中的容器。如果容器终止,数据…

排序的简单理解(上)

1. 排序的概念及引用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作(按照我们的需求能够有序的将数据信息排列起来)。 稳定性:假…

TeeChart.NET 2023.11.17 Crack

.NET 的 TeeChart 图表控件提供了一个出色的通用组件套件,可满足无数的图表需求,也针对重要的垂直领域,例如金融、科学和统计领域。 数据可视化 数十种完全可定制的交互式图表类型、地图和仪表指示器,以及完整的功能集&#xff0c…