二进制补码计算

基本知识

原码(Sign and Magnitude):原码是一种最简单的表示法,使用符号位和数值位来表示整数。

符号位:最高位是符号位,0表示正数,1表示负数。
数值位:剩下的位表示数值的大小。

反码(One’s Complement): 反码表示法是通过将数值位逐位取反来表示负数。

正数的反码:与其原码相同。
负数的反码:符号位为1,数值位逐位取反。

补码(Two’s Complement)

补码是计算机中最常用的表示法,通过在反码的基础上加1来表示负数。它解决了反码表示零有两个表示的问题,并且使加减法运算更为简便。

正数的补码:与其原码相同。
负数的补码:符号位为1,数值位逐位取反后加1。

乘法

正数和负数的乘法共4种情况:

  • 正正得正
  • 正负为负
  • 负正为负
  • 负负得正

正数乘正数

在这里插入图片描述常规运算即可。

负数乘正数

  • 负数写在被乘数的位置
  • 正数写在乘数的位置
  • 部分积需要符号扩展,扩展长度为2n
    在这里插入图片描述
  • 另一个例子:

8bit x 8bit = 16 bit
在这里插入图片描述

负数乘负数

4bit x 4bit = 8bit
在这里插入图片描述

  • 负数需要进行符号扩展
  • 符号位的计算单独处理

原理说明

对于 1 A N − 2 A N − 3 . . . A 0 1A_{N-2}A_{N-3}...A_0 1AN2AN3...A0表示的Nbit负数补码,其真实的值为 A = ( − 1 ) × 2 N − 1 + A N − 2 × 2 N − 2 + . . . + A 0 × 2 0 A = (-1)\times 2^{N-1} + A_{N-2}\times 2^{N-2} +...+ A_0 \times 2^0 A=(1)×2N1+AN2×2N2+...+A0×20。即 − 2 N − 1 -2^{N-1} 2N1加上除符号bit外将其余bit看成原码表示的值。例如。1011的4bit补码表示的实际值为 − 1 × 2 3 + 3 = − 5 -1\times 2^{3} + 3=-5 1×23+3=5

在补码的世界里,一个数乘(-1)等于求这个数的补码。

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

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

相关文章

windows11下vscode配置C/C++(过程记录)

一、概述 一直想在Windows11系统下使用vscode运行C/C程序,如果使用visual studio的话需要占用大量内存,且每次启动较慢。vscode则可以省去大多数烦恼。 二、具体配置过程 (一)参考博客 主要参考两篇博客,分别如下所示…

kubernetes集群如何更改所有节点IP

kubernetes集群如何更改所有节点IP 情景描述更换IP前的准备工作更换IP后的工作--master更换IP后的工作--node节点重新部署之前那些服务 情景描述 我有三台服务器,想要将其组成了一个kubernetes集群,在部署之前,我就对其进行了固定IP的操作&a…

uboot学习:(二)uboot命令

目录 uboot命令 常见命令 内存操作命令 网络操作命令 EMMC/SD卡操作命令: FAT格式文件系统操作命令: EXT格式文件系统操作命令 NAND操作命令 BOOT操作命令 其他命令 uboot命令 在烧录uboot到板子中后,开机三秒后才会进入系统,在这三秒按enter…

ARM功耗管理之多核处理器启动

安全之安全(security)博客目录导读 思考:SecureBoot?多核处理器启动流程?PSCI启动方式? 一般嵌入式系统使用的都是对称多处理器(Symmetric Multi-Processor, SMP)系统,包含了多个cpu, 这几个cp…

MICCAI 2024Centerline Boundary Dice Loss for Vascular Segmentation

MICCAI 2024 Centerline Boundary Dice Loss for Vascular Segmentation MICCAI 2024Centerline Boundary Dice Loss for Vascular Segmentation中心线边界Dice损失用于血管分割**摘要**:1. 引言相关工作: 2. 方法预备知识Dice的变化 3 实验3.1 数据集3.2 设置3.3 结…

window对象监听浏览器页签之间的切换状态;前端监听浏览器切换页签的触发时机

window对象监听浏览器页签之间的切换状态 记录两种办法 第一种:会将任何鼠标点进或点出浏览器的操作监听;同页面也会触发 // 窗口获得焦点时的回调函数 function onWindowFocus() {console.log(窗口获得焦点);querySubmit() } // 窗口失去焦点时的回调函…

第2章 源码编译构建LAMP

LAMP LAMP是一个常见的开发平台和运行环境,主要用于支持动态网站和Web应用程序的开发和部署。 L: Linux,指操作系统,通常是Linux操作系统。A: Apache,指Web服务器软件,常用于托管网站。M: MySQL,指关系型…

推荐一个比 Jenkins 使用更简单的项目构建和部署工具

最近发现了一个比 Jenkins 使用更简单的项目构建和部署工具,完全可以满足个人以及一些小企业的需求,分享一下。 项目介绍 Jpom 是一款 Java 开发的简单轻量的低侵入式在线构建、自动部署、日常运维、项目监控软件。 日常开发中,Jpom 可以解…

uniapp js 用dom创建form表单 并提交

// 创建一个新的form元素 var form window.document.createElement(form); // 设置form的method和action属性 form.method POST; form.action https://xxx; …

python--实验8 函数(2)

知识点 变量的作用域 定义:解释了局部变量和全局变量的概念。局部变量: 局部变量是在函数内部定义的变量。它们只在该函数内部可见,一旦函数执行完毕,这些变量就会被销毁。例子:在函数内部通过赋值创建的变量。全局…

macbook触控栏养宠物:Touchbar pet for Mac 免费下载

macbook pro自从出了touchbar后,看起来是十分的炫酷,但平时却很少有人使用,为了让touchbar充分利用起来,Touch bar pet就横空出世了,可爱的画风,简单的玩法,让你可以在touchbar上也可以养一只自…

网络安全就业方向(非常详细)零基础入门到精通,收藏这一篇就够了

这里我整合并且整理成了一份【282G】的网络安全/红客技术从零基础入门到进阶资料包,需要的小伙伴文末免费领取哦,无偿分享!!! 对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以…

2.5 计算机网络

声明:文章参考的《系统架构设计师教程(第二版)》,如有侵权,本人将立即修改和删除。 利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,并依靠网络软件以及通信协议实现…

p15 p16 c语言实现三子棋

具体的实现代码 game.c #include "game.h"void InitBoard(char board[ROW][COL], int row, int col) {int i 0;int j 0;for (i 0; i < row; i) {for (j 0; j < col; j) {board[i][j] ;}} }void DisplayBoard(char board[ROW][COL], int row, int col) …

算法训练(leetcode)第二十九天 | 62. 不同路径、63. 不同路径 II

刷题记录 *62. 不同路径63. 不同路径 II *62. 不同路径 leetcode题目地址 每个单元格的数值都是有上方和左侧的单元格决定的&#xff0c;因此需要先将最上方和最左侧的单元格初始化。因为题目要求只能向下和向右移动&#xff0c;因此最上方和最左侧的单元格初始化为1。 时间…

《昇思25天学习打卡营第8天 | mindspore 模型保存与加载用法》

1. 背景&#xff1a; 使用 mindspore 学习神经网络&#xff0c;打卡第8天&#xff1b; 2. 训练的内容&#xff1a; 为了微调&#xff08;fine-tune&#xff09;和后续的模型推理与部署&#xff0c;因此需要保存模型的参数&#xff0c;本小结主要训练保存模型。 3. 常见的用…

【java实现结果集转为树结构,树转为扁平结构】

list转为树&#xff0c;树拉平 业务需求oracle实现树结构1、**Controller.java层** &#xff1a;前端调此处请求2、**service层&#xff1a;** 逻辑结构 &#xff08;zbjcpjService.java&#xff09;&#xff0c;重点&#xff1a;this.entityMapper.queryZbjcpjTree接口3、**ma…

【python算法学习1】用递归和循环分别写下 fibonacci 斐波拉契数列,比较差异

问题&#xff1a; fibonacci 斐波拉契数列&#xff0c;用递归和循环的方法分别写,比较递归和循环的思路和写法的差别 最直接的思路&#xff0c;是写递归方法 循环方法的稍微有点绕&#xff0c;我觉得问题主要是出在&#xff0c;总结循环的通项公式更麻烦&#xff0c;难在数学…

多目标螳螂搜索算法MOMSA求解无人机三维路径规划,可以自行修改障碍物位置(MATLAB代码)

无人机路径规划多目标优化求解是一个复杂的过程&#xff0c;涉及到多个目标的考量和优化算法的应用。以下是一些关键点和相关算法的概述&#xff1a; 1. **多目标优化策略**&#xff1a;在无人机路径规划中&#xff0c;需要同时考虑多个目标&#xff0c;如路径长度、安全性、飞…

关于delete和delete[ ]混用的未定义问题解释

我们知道delete用于释放一个动态空间&#xff0c;而delete[ ]用于释放多个动态空间&#xff0c;但是如果我们混用的话会导致什么问题&#xff1f;我在博客上看了许多文章&#xff0c;但不尽人意&#xff0c;因此写下这篇文章让你知其然知其所以然&#xff08;浅薄的解释&#x…