补码计算在计算机上的优点和缺点,相对于原码和反码,补码表示法有什么优点和缺点...

2023-11-06

2016-08-13 回答

原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。

机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。

机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。

如果是为了考试,死记即可。但我总想搞清楚为什么计算机里面的数要这样子表达?意义何在?-128的补码为什么是10000000?为什么补码有这么奇怪的运算规则?计算机算减法的时候都需要从源码到补码的计算吗?

思路

google了一下,看到了这样一篇文章,注意到文中关于补码来历的描述,可以总结如下:

计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用加法进行。

用补数代替原数,可把减法转变为加法。出现的进位就是模,此时的进位,就应该忽略不计。

二进制下,有多少位数参加运算,模就是在 1 的后面加上多少个 0。

补码就是按照这个要求来定义的:正数不变,负数即用模减去绝对值。

补充解释一下“模”的概念(不准确):

考虑时钟上时间的计算,假设现在时针指向数字3,若问“6小时前时针指向的数字是几”,则可以:

1. 将时针逆时针拨动6格。<

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

补码计算在计算机上的优点和缺点,相对于原码和反码,补码表示法有什么优点和缺点... 的相关文章

  • Python反转输出正整数

    题目 获得输入正整数 N 反转输出该正整数 不考虑异常情况 输入格式 输入一个正整数 输出格式 输出一个正整数 疑问 为什么我的两个答案都没通过Python二级在线评阅的测试 我
  • 【数据库】--- Redis

    Redis 概述 Redis 简介 下载与安装 基本使用 基本知识 数据结构 字符串类型 String 列表类型 List 集合类型 Set 哈希类型 hash 有序集合 zset srted set 关于key的指令 1 查询符合条件的
  • js逆向-某动网演出数据获取

    声明 本文仅供学习参考 如有侵权可私信本人删除 请勿用于其他途径 违者后果自负 如果觉得文章对你有所帮助 可以给博主点击关注和收藏哦 前言 目标网站 aHR0cHM6Ly93d3cuc2hvd3N0YXJ0LmNvbS9ldmVudC9sa
  • 爆改闲置主机为nas

    目录 一 工具准备 1 工具 2 下载需要安装的文件 二 进行实操 1 刷U盘或者硬盘的引导 2 上x86主机 3 连接x86主机 4 安装群辉 三 进入系统 1 存储池的设置 2 共享文件夹的设置 3 用户的设置 4 IP地址的固定 作者
  • 轿车双横臂式独立前悬架及多连杆式独立后悬架设计(毕业论文+7张CAD图纸)

    轿车双横臂式独立前悬架及多连杆式独立后悬架设计 摘 要 悬架是汽车重要的组成部分 是传递车轮与车身之间的各种力和力矩的连接装置 轿车的前悬架采用的双横臂式独立悬架 其后悬采用的是多连杆式独立悬架 双横臂式的独立悬架是常见的悬架形式之一 由于
  • 详解TCP,三次握手,四次挥手

    前言 TCP是非常常见的面试题 是必会的知识点 记录一下与各位共同学习 三次握手 问 为什么要三次握手 因为三次握手才能保证双方具有接收和发送的能力 第一次握手 客户端发送带有 SYN 标志的连接请求数据包给服务端 第二次握手 服务端发送带
  • 解决linux根目录磁盘空间不足问题

    问题 一开始创建虚拟机 分配给虚拟机的磁盘空间太小了 所以磁盘空间很快就会填满 如果根目录的磁盘空间占用超过90 会导致无法再新安装软件 可以通过df h命令查看磁盘的剩余空间 df命令的英文全称即 Disk Free 顾名思义功能是用于显
  • 算法题记录【华为od】AI处理器组合

    题目描述 思路分析 这个题感觉更像优先级的问题 但是题目里面又没有讲清楚 不太理解 本人是按照题目描述以及自我理解做的 感觉还是不对劲 代码解析 let input 0 1 4 5 6 7 arr1 arr2 let input1 3 边界
  • 数据结构之概念与线性表

    算法 算法特征 1 有穷性 2 确定性 3 可行性 4 输入和输出 算法好坏评价 正确性 可读性 确定性 健壮性 效率和低存储 算法效率的度量 时间复杂度 空间复杂度 线性表 顺序存储 线性表 链式存储 指针实现 单链表 双链表 循环链表
  • 函数调用规范

    当高级语言函数被编译成机器码时 有一个问题就必须解决 因为CPU没有办法知道一个函数调用需要多少个 什么样的参数 即计算机不知道怎么给这个函数传递参数 传递参数的工作必须由函数调用者和函数本身来协调 为此 计算机提供了一种被称为栈的数据结构
  • QT5之信号槽概念以及实现机制

    概念 当一件事情发生之时便会发送一个信号 而槽就是一个函数 被用来响应这个信号当信号发生之时 关联方式 一个信号关联一个槽 connect Object1 SIGNAL signal Object2 SLOT slot signal1为对象
  • 如何在Linux中安装jdk?

    如何在Linux中安装jdk 学习目标 如何在Linux中安装jdk 1 先创建一个新的虚拟机 一共13步创建好虚拟机 2 配置虚拟机 3 在虚拟机中安装JDK 1 先创建一个新的虚拟机 一共13步创建好虚拟机 我使用的是VMware Wo
  • NIO群聊

    服务端 package nio import java io IOException import java net InetSocketAddress import java nio ByteBuffer import java nio
  • Python实验二 顺序结构程序设计

    1 阅读下面程序 i j 3 4 i j 2j i s i j print s s i j 3 4 i j 2j i s i j print s s i j 3 4 i j 2 j i s i j print s s 2 写出下列程序执行结
  • 腾讯云批量上传文件(前端)

    腾讯云批量上传文件 前端 前言 1 腾讯云上传文件 遍历调用上传方法 2 根据文件文件后缀名判断上传成功后 文件的回显形式 3 在腾讯云建立存储桶 需要后端配合写上传接口 线上测试 1 效果样式 如下 1 引入cos js sdk v5 j
  • 解决Mybatis-plus高版本不向后兼容的问题

    mybatis plus插件后面的版本没有兼容低版本 即 不存在低版本中EntityWrapper这个类了 而该类采用数据库表真实字段名作查询条件 这样硬编码形式确实不友好 比如如果后面数据库表中字段更名那么所有涉及到的业务都需要去修改 且
  • 2021年五一建模B赛题+思路

    背景 随着我国经济的高速发展 城市空间环境复杂性急剧上升 各种事故灾害频发 安全风险不断增大 消防救援队承担的任务也呈现多样化 复杂化的趋势 对于每一起出警事件 消防救援队都会对其进行详细的记录 某地有15个区域 分别用A B C 表示 各
  • ElasticSearch常用配置(内置账号密码修改、自定义角色自定义账号,日志定期删除等)...

    自定义内置账号 账户elastic为elasticsearch超级管理员 拥有所有权限 账户kibana用于kibana组件获取相关信息用于web展示 账户logstash system用于logstash服务获取elasticsearch
  • EasyAR脱卡方法

    首先说下大致思路 当卡片离开摄像头时间 ImageTarget Image的SetActive false 所以其子物体 model 也就不显示了 因此解决的办法就是在Target false 时间将模型放到一个合适的位置 这样就能实现脱卡

随机推荐

  • Fabric配置fabric-sample工程目录,并生成证书

    GitHub上的fabric sample工程 默认只有源码 缺少CA工具和加密工具 它需要从其他地方下载CA工具和加密工具 这里以fabric v1 4 0为例进行说明 步骤如下 1 下载fabric sample v1 4 0源码 官网
  • ABA问题

    这篇文章 http oceanbase org cn p 82 的第6小节讲述了Hazard Version的实现原理 它的设计思想最早由OB团队的席华锋提出 本文不再赘述 本文主要分享Hazard Version的实现要点 以及使用它实现
  • 【Hashmap】底层原理详解(JAVA 18)

    让我们在IDEA中打开HashMap源码 开始往下看 HashMap 继承自AbstractMap 实现了Map接口 HashMap类中定义了很多的默认值 比如默认初始容量 最大容量 加载因子等 HashMap底层基于数组 链表 红黑树 H
  • 【C++拷贝构造函数、深拷贝和浅拷贝】

    C 拷贝构造函数 深拷贝和浅拷贝的介绍与应用 1 引言 在C 中 拷贝构造函数和拷贝操作是用于创建对象的副本的重要概念 拷贝构造函数用于在创建新对象时初始化其值 而拷贝操作用于将一个对象的值复制到另一个对象 深拷贝和浅拷贝是两种不同的拷贝方
  • 针对Anaconda-navigator和spyder打不开的问题

    胡乱安装pyqt和qtpy等会导致qt的依赖混乱 以致于ananconda navigator和spyder会有打不开的情况发生 解决的办法有 1 常规套路 参考 https www cnblogs com zlslch p 8066662
  • EyygDlHuwc

    test
  • oracle 联机文档下载

    http www oracle com technetwork indexes downloads index html database setup2
  • dll破解

    1 安装Reflector 并用打开需要破解的Dll 分析并找到 需要调整的程序段 2 采用ildasm exe 将 dll 编译为 IL文件 3 采用UltraEdit NotePad 打开IL文件 找到对应的IL 代码 并将其修改 4
  • Spring前后端传递参数的几种方法(转)

    Spring前后端传递参数的几种方法 转 原文链接 一 准备工作 1 建立HelloController类 2 在webapp下建一个hello html文件 hello html文件中写一个表单 二 传值方法 1 使用servlet 通过
  • MongoDB:常用命令

    1 查询指定字段 db matrixSignals find id 607d9de3d95bfe9620234f2f 2 清空 db myCollection remove
  • Caused by: com...MySQLNonTransientConnectionException: Public Key Retrieval is not allowed 的解决办法

    问题概述 关于这个是在新开子工程中遇到的 本工程使用的Mysql 8 x的 拉取项目启动时遇见问题 com mysql jdbc exceptions jdbc4 MySQLNonTransientConnectionException P
  • MEMS麦克风已成消费市场的主流产品选择

    ECM和MEMS麦克风的技术差异 随着麦克风应用的增加 对麦克风的灵敏度和体积的要求也越来越高 目前用来构建麦克风的两种最常见的技术是MEMS和驻极体电容 以下将先介绍MEMS和驻极体电容麦克风 ECM 的基础知识 比较技术之间的差异 并概
  • 图像变换与平面坐标系的关系

    转载自 1 http blog csdn net tangyongkang 2 https zhuanlan zhihu com p 74597564 坐标旋转变换公式 围绕原点 如图 在二维坐标上 有一点 直线 的长度为r 直线 和 轴的
  • 如何把GITLAB设置为简体中文

    如何把GITLAB设置为简体中文 直接步入正题 如图所示 登录git首页是这样 咱们需要点击个人头像下的preference 将跳转网页拉取到最下面 会有language一栏 将English改为简体中文 然后保存设置即可
  • 华为OD机试真题- 最多提取子串数目【2023Q1】【JAVA、Python、C++】

    题目描述 给定由 a z 26个英文小写字母组成的字符串A和B 其中A中可能存在重复字母 B中不会存在重复字母 现从字符串A中按规则挑选一些字母 可以组成字符串B 挑选规则如下 1 同一个位置的字母只能被挑选一次 2 被挑选字母的相对先后顺
  • 获取标签内部全部文本的几种方式

    运用scrapy框架爬取所需要的内容 我在百度贴吧中找了一篇小说 我来只爬取楼主的文本信息 下面为初始代码 import scrapy import re class XiaoshuoSpider scrapy Spider name xi
  • 数据结构,计算二叉树结点数 C语言实现

    树的存储结构 typedef struct BiTNode char data struct BiTNode lchild rchild BiTNode BiTree 代码实现 int GetNodeNumber BiTree T int
  • linux中的strings命令

    一 介绍 strings命令在对象文件或二进制文件中查找可打印的字符串 字符串可打印字符的任意序列 以换行符或空字符结束 strings命令对识别随机对象文件很有用 常用参数 a 扫描整个文件而不是只扫描目标文件初始化和装载段 f 在显示字
  • idea导入本地jar编译提示找不到jar报包问题(gradle)

    问题描述 使用springboot项目 gradle依赖管理 在进行本地项目测试时 由于需要导入本地jar进行运行测试 在idea项目依赖中以引入此jar 编译运行时提示找不到符号 此时代码不提示报错 尝试直接在gradle中引入本地依赖的
  • 补码计算在计算机上的优点和缺点,相对于原码和反码,补码表示法有什么优点和缺点...

    2016 08 13 回答 原码表示法是机器数的一种简单的表示法 其符号位用0表示正号 用 表示负号 数值一般用二进制形式表示 机器数的反码可由原码得到 如果机器数是正数 则该机器数的反码与原码一样 如果机器数是负数 则该机器数的反码是对它