Lecture 17

10’s Complement Representation

主要内容:

1. 10’s 补码表示:

• 10’s 补码表示法需要指定表示的数字位数(用  n  表示)。

• 表示的数字取决于  n  的位数,这会影响具体数值的解释。

2. 举例:

• 如果采用 3 位补码,数字 ‘567’ 代表  -433 。

• 原理:在 3 位补码中,范围是从  -10^3 / 2  到  10^3 / 2 - 1 ,即  -500  到  499 。数字超过正值范围就表示负值。

• 如果采用 4 位补码,数字 ‘0567’ 代表  567 。

• 因为此时正值范围是从 0 到  10^4 - 1 。

Addition

1. 使用 10’s 补码的加法操作:

• 对于 n 位数字,在补码表示中进行加法的规则是:

• 按 模  10^n  进行加法。

• 任何超过  n  位的进位都会被“丢弃”(舍弃最高位的进位)。

2. 核心规则:

模运算: 结果限制在指定的范围内(例如对于 3 位补码,模  1000 )。

• 使用标准加法规则,只需在最终结果中忽略多余的进位。

补充解释:

模运算的意义: 模运算确保结果始终在有效范围内。例如,在 3 位数运算中,进位舍弃后,结果仍然是 3 位数。

简化计算: 通过模运算和进位舍弃,复杂的减法和负数处理都能简化为加法。

 

Subtraction

1. 减法原理:

• 减去  B  相当于加上  -B ,即:

A - B = A + (-B)

2. 如何计算  -B :

•  -B  是  B  的 10’s 补码,即:

• 用  10^n - 1  减去  B 。

• 例如,若  B = 250 ,其补码  -B = 750 。

 

Overflow testing 

• Example.

– Codes: ‘347’ + ‘230’ = ‘577’.

– Values: 347 + 230 = - 423.

超出了 3 位补码的表示范围(-500 到 499)。

溢出检测的规则

• 如果两个加数的符号相同,但结果的符号不同,就发生了溢出。

Positive and Negative 

1. 10’s 补码范围分布:

• 在 10’s 补码系统中,正数和负数的表示范围是不均匀(unevenly)

• 这是因为 10’s 补码需要分配一个额外的数字给负的最小值(负数范围多一个值)。

2. 例子:

• 在 4 位补码系统中,可以表示的整数范围是:

-5000 -4999

• 负数范围为 -5000 到 -1,共 5000 个数。

• 正数范围为 0 到 4999,共 5000 个数。

• 这种不均匀分布是补码编码的固有特性。

Two’s Complement in 8 Bits

1. 二进制中的 2’s 补码:

• 对于 8 位二进制数(n=8),2’s 补码的表示类似于 10’s 补码,只是底数从 10 换成了 2。

范围:

• 从 - 2^7 = -128  到  2^7 - 1 = 127 。

2. 表示方法:

• 二进制编码如下:

• 从 10000000 表示最小的负数(-128)。

• 到 01111111 表示最大的正数(127)。

• 0 的编码是 00000000。

符号规则

以 0 开头的数字:

• 表示正数,直接用自然值。

• 如:00000101 表示 5。

以 1 开头的数字:

• 表示负数,其数值为补码形式。

• 如:11111101 表示 -3。

 求补码的方法

• 计算一个数字的 2’s 补码可以通过两种方法:

1. 模运算

从  2^n  减去数值。

2. 逐位取反加 1

取反:将所有位翻转(0 变 1,1 变 0)。

加 1:对取反后的值进行加 1 运算。

 例子:

• 数字 11011101:

• 逐位取反得到 00100010。

• 加 1 得到 00100011,即 -35。

Addition

1. 加法规则:

• 在 2’s 补码中,加法通过模运算  2^n  实现。

• 超出最高位的进位会被舍弃。

2. 例子:

• 011011 表示 27。

• 101100 表示 -20(负数补码形式)。

• 加法:

•  011011 + 101100 = 1000111 (有进位)。

• 舍弃最高位,结果是 000111,即 7。

 

Subtraction and Overflow

1. 减法的实现:

• 在 2’s 补码系统中,减法与 10’s 补码类似:

A - B = A + (-B)

• 这意味着减法可以通过先求负数  -B  的补码,然后与  A  直接相加来完成。

2. 溢出的检测:

• 如果两个加数的符号相同,但结果的符号不同,则发生了溢出。

Numerical Types in Java

1. Java 中的整数类型:

byte: 8 位整数,范围: -2^7  到  2^7 - 1 (即 -128 到 127)。

short: 16 位整数,范围: -2^{15}  到  2^{15} - 1 (即 -32,768 到 32,767)。

int: 32 位整数,范围: -2^{31}  到  2^{31} - 1 。

long: 64 位整数,范围: -2^{63}  到  2^{63} - 1 。

2. 补码表示法:

• Java 使用 2’s 补码表示法 来处理有符号整数。

Q&A

1. Addition for  n -digit numbers represented by 10’s complement is based on addition modulo  10^n ?”

• 答案:True

 n -位数的加法基于 模运算  10^n 

2.How is Overflow Detected?

溢出检测规则:

• 当两个数的符号相同,而结果的符号与加数符号不同,则发生溢出。

3. Can Overflow Result from Subtractions?

与加法类似:若两个操作数的符号相反,而结果符号与被减数  A  不同,则发生溢出

4. An int type under Java encodes integers under this range: -2³² — 2³² - 1?

实际表示范围是从 -2³¹ 到 2³¹ - 1

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

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

相关文章

【Hackthebox 中英 Write-Up】Web Request | 分析 HTTP 请求和响应

欢迎来到我的writeup分享!我希望大家不要只关注结果或答案,而是通过耐心阅读,尝试逆向工程理解背后的运作原理。在这里,你不仅能找到解题的思路,还能学到更多与Hack The Box等平台相关的技术和技巧,期待与你…

linux 点对点语音通话及直播推流实践一: linux USB声卡或耳机 基本配置

inux USB声卡或耳机 基本配置 工具安装查看设备录放音操作录音放音声音配置获取控制信息音量配置本文介绍 linux下alsa声音原件 工具使用方法,包括设备查询、声卡基本配置、录音放音等。 保证 alsa套件可正常操作和配置声卡,是实现SIP语音通话、音视频 采集及推拉流功能的基础…

《优势谈判》——阅读笔记

投入 思想准备:一个谈判是要双赢的,至少需要让对手这么认为;进行一场谈判,需要看到对面是否真的愿意和你谈判 谈判技巧 永远不要接受首次报份;如果对方临时变更了要求,则可以通过立刻要求对方做补偿等方…

PPT画图——如何设置导致图片为600dpi

winr,输入regedit打开注册表 按路径找,HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\PowerPoint\Options(xx为版本号,16.0 or 15.0或则其他)。名称命名:ExportBitmapResolution 保存即可,…

高性能网络框架--fstack

【欢迎关注编码小哥,学习更多实用的编程方法和技巧】 Fstack 是一个高性能的网络框架,主要用于构建高性能的网络应用程序,特别是在处理大量并发连接时。它基于 Linux 的 epoll 机制,使用了多线程和事件驱动的编程模型。以下是对 …

电商项目-数据同步解决方案(三)商品上架同步更新ES索引库

一、 需求分析和业务逻辑 主要应用技术有:Feign远程调用, 消息队列-RabbitMQ ,分布式搜索引擎-ElasticSearch,Eureka,Canal 商品上架将商品的sku列表导入或者更新索引库。 数据监控微服务需要定义canal监听器&#x…

Unity游戏环境交互系统

概述 交互功能使用同一个按钮或按钮列表,在不同情况下显示不同的内容,按下执行不同的操作。 按选项个数分类 环境交互系统可分为两种,单选项交互,一般使用射线检测;多选项交互,一般使用范围检测。第一人…

前端正在被“锈”化

jeff Atwood 在 2007 年说:"any application that can be writen in JavaScript , willeventually be written in JavaScript",翻译过来就是:“任何可以使用 JavaScript 来编写的应用,并最终也会由 JavaScript 编写”&a…

穷举vs暴搜vs深搜vs回溯vs剪枝_全排列_子集

46. 全排列 递归解决:一开始选一个数,递归进入下一层再选一个新的数,直到到最后一个数。反会上一层遍历其它数。 每次递归到叶子节点就找到了一种组合,思路有了具体怎么实现? 1.怎么记录每条路径? 定义一个…

【openGauss】正则表达式次数符号“{}“在ORACLE和openGauss中的差异

一、前言 正则作为一种常用的字符串处理方式,在各种开发语言,甚至数据库中,都有自带的正则函数。但是正则函数有很多标准,不同标准对正则表达式的解析方式不一样,本次在迁移一个ORACLE数据库到openGauss时发现了一个关…

【代码随想录|完全背包问题】

518.零钱兑换|| 题目链接:518. 零钱兑换 II - 力扣(LeetCode) 这里求的是组合数,就是不强调元素排列的顺序,211和121是同一个数那种,要先遍历物品,这样的话我算出来的每个值才是按顺序121&…

go语言的成神之路-筑基篇-gin常用功能

第一节-gin参数绑定 目录 第一节-?gin参数绑定 ShouldBind简要概述 功能: 使用场景: 可能的错误: 实例代码 效果展示 第二节-gin文件上传 选择要上传的文件 选择要上传的文件。 效果展示? 代码部分 第三节-gin请求重定向 第…

Qt 12.28 day3

作业: 1】 思维导图 2】 在登录界面的登录取消按钮进行以下设置: 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&a…

mybatis-plus 用法总结

MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,旨在简化开发者的 CRUD 操作。它在 MyBatis 的基础上提供了更多的功能和便利性,如代码生成器、分页插件、性能分析插件等,使开发者能够更高效地进行数据库操作。MyBatis-P…

Rust: enum 和 i32 的区别和互换

在Rust编程语言中,enum(枚举)和i32是两种不同类型的数据结构,它们各自有不同的用途和特性。 i32 i32是一个32位的有符号整数类型。它用于存储整数值,范围从-2,147,483,648到2,147,483,647。i32是Rust中的基本数据类型…

迁移学习 详解及应用示例

简介: 迁移学习是一种机器学习技术,其核心思想是利用在一个任务上已经学到的知识(源任务:任务已经有一个训练好的模型,然后我们将这个模型的某些部分或知识迁移到一个新的但相关的“目标任务”上。)来帮助解…

【ETCD】【实操篇(十五)】etcd集群成员管理:如何高效地添加、删除与更新节点

etcd 是一个高可用的分布式键值存储,广泛应用于存储服务发现、配置管理等场景。为了确保集群的稳定性和可扩展性,管理成员节点的添加、删除和更新变得尤为重要。本文将指导您如何在etcd集群中处理成员管理,帮助您高效地维护集群节点。 目录 …

前端 学习

vue结构 package.json 作用:记录项目的元信息,包括依赖包、脚本命令、项目名称、版本号等。 常见字段: dependencies:运行时依赖的 npm 包。 devDependencies:开发时使用的依赖包。 scripts:定义 npm 脚本…

矩阵的因子分解1-奇异值分解

文章目录 矩阵的因子分解1-奇异值分解求法归纳例1. 对矩阵 A ( 0 1 − 1 0 0 2 1 0 ) A \begin{pmatrix} 0 & 1 \\ -1 & 0 \\ 0 & 2 \\ 1 & 0 \end{pmatrix} A ​0−101​1020​ ​ 进行奇异值分解1. 计算 A H A A^H A AHA 的特征值和特征向量2. 将奇异值按…

网易企业邮箱登陆:保障数据安全

网易企业邮箱是一款为企业提供安全可靠的电子邮件服务的工具。通过网易企业邮箱,企业可以实现员工之间的高效沟通和信息共享,同时保障数据的安全性。 企业邮箱的安全性是企业信息保护的重要组成部分。网易企业邮箱采用了多层加密技术,确保邮件…