计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.3-2.4)

2023-10-27

目录

2.3 整数运算

2.3.1 无符号加法

2.3.2 补码加法

2.3.3 补码的非

2.3.4 无符号乘法

2.3.5 补码乘法

2.3.6 乘以常数

2.3.7 除以2的幂

2.3.8 关于整数运算的最后思考

2.4 浮点数

2.4.1 二进制小数

2.4.2 IEEE浮点表示

2.4.3 数字实例

2.4.4 舍入

2.4.5 浮点运算

浮点数加法

浮点数乘法

2.4.6 C语言的浮点数


 

2.3 整数运算

 

 

 

 

 

算术运算: 基本规则

  • 加法:
    • 无/有符号数的加法: 正常加法后再截断,位级的运算相同
    • 无符号数:加后对2w求模
      • 数学加法 + 可能减去 2w
    • 有符号数: 修改的加后对 2w 求模,使结果在合适范围
      • 数学加法 + 可能减去或加上 2w
  • 乘法:
    • 无/有符号数的乘法:正常乘法后加截断操作,位级运算相同
    • 无符号数:乘后对2w求模
    • 有符号数: 修改的乘后对 2w 求模,使结果在合适范围内

 

 

 

 

  • 无符号整数、补码整数是同构环(isomorphic rings)
    • 同构 = 类型转换  (isomorphism = casting)
  • 左移
    • 无论有/无符号数,都可用逻辑左移实现乘以 2k
  • 右移
    • 无符号数: 逻辑右移,除以 2k (除法 +0舍入)
    • 有符号数: 算术右移
      • 正整数:除以 2k (除法 + 向0舍入)
      • 负整数:除以 2k (除法 + 远离0舍入),使用偏置来修正

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.3.1 无符号加法

 

 

 

 

 

 

 

 

 

 

 

  • 操作数:w位
  • 真实和:w+1位
  • 丢弃进位后:w位

 

 

 

 

 

 

 

 

 

 

  • 数值面有弯折
  • 非饱和运算——不单调
  • 当真实和>=2^w时溢出
  • 最多溢出一次

 

 

 

 

 

 

 

2.3.2 补码加法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 真实和需要w+1
  • 丢弃最高有效位(MSB)
  • 将剩余的位视作补码(整数)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

判断补码是否超范围:

  • 正常: Xh != Yh Xh==Yh==Zh
  • 溢出: Xh==Yh != Zh

 

 

 

 

 

 

 

 

 

2.3.3 补码的非

注意:在w位最小值取非时,值不变

2.3.4 无符号乘法

w位和w位无符号数做乘法,2w位取低w位

即截断为w位,等价于该值模2^w

2.3.5 补码乘法

 

 

 

 

 

  • 标准乘法功能
    • 忽略高w位
    • 有符号数乘、无符号数乘有不同之处:
      •  乘积的符号扩展
    • 乘积的低位相同

 

 

 

 

 

 

 

2.3.6 乘以常数

 

 

 

 

 

  • 乘法指令很慢
  • 移位+加法---代替--->乘法
  • 重点考虑乘以2的幂

 

优化

 

 

 

2.3.7 除以2的幂

算术右移k位=除以2的k次方

2.3.8 关于整数运算的最后思考

  • 一定要知道隐含的转换规则,否则不要用:
    • 常见错误
      • unsigned i;
      • for (i = cnt-2; i >= 0; i--)
      •   a[i] += a[i+1];
    • 不易察觉的问题
      • #define DELTA sizeof(int)     //sizeof()类型unsigned
      • int i;
      • for (i = CNT;  i - DELTA >= 0; i -= DELTA)
      •   . . .

2.4 浮点数

2.4.1 二进制小数

 

 

 

 

 

 

 

 

 

 

 

 

 

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

    计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.3-2.4) 的相关文章

    • 浮点数表示法(总结自CS61C和CMU CSAPP)

      总结自伯克利的CS61C2021秋季课程 xff0c Nick主讲和CMU2015年讲CS APP的课程 xff0c 标题均是floating point xff0c 相比而言CMU讲得比较详细 xff0c 我先看了一遍CS61C再看了一遍
    • CSAPP Lab3- bufbomb

      实验目标 xff08 1 xff09 掌握函数调用时的栈帧结构 xff08 2 xff09 利用输入缓冲区的溢出漏洞 xff0c 将攻击代码嵌入当前程序的栈帧中 xff0c 使得程序执行我们所期望的过程 实验代码 xff08 1 xff09
    • 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.3-2.4)

      GitHub计算机系统CSAPP课程资源 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 1 2 2 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 3 2 4 计算机系统课程 笔记总结 CSAPP第三章
    • 浮点数和整数之间的转换

      当一个整数int i 12345被强制转换为一个FLOAT型变量 float f float i 假设sizeof int 32 float为单精度 sizeof float 32 那么i 12345 十进制 000000000000000
    • IEEE二进制浮点数算术标准(IEEE 754)

      IEEE二进制浮点数算术标准 IEEE 754 是20世纪80年代以来最广泛使用的浮点数运算标准 为许多CPU与浮点运算器所采用 这个标准定义了表示浮点数的格式 包括负零 0 与反常值 denormal number 一些特殊数值 无穷 I
    • 限制input输入符合规则的浮点数

      给指定的dom添加事件 col sm 2 min goods amount keydown function e return formatInput e 限制input输入符合规则的浮点数 param type e 键盘事件 param
    • 深入理解计算机系统Lab3实验

      目录 实验准备 实验资源的准备 生成ctarget等文件的反汇编代码 确定实验环境是大端还是小端 实验进行 Phase1 简述 测试 分析 目标 找到touch1的代码并重写 并且 找到getbuf 函数中 为Get 函数所开辟的字符串最大
    • (四)现代计算机系统的层次结构

      程序执行结果 不仅取决于算法 程序的编写 而且取决于语言处理系统 操作系统 ISA 微体系结构 不同计算机课程处于不同层次 必须将各层析关联起来解决问题 功能转换 上层是下层的抽象 下层时上层的实现 地位为上层提供支撑环境 计算机系统的不同
    • 【CSAPP】Binarybomb 实验(phase_1-6+secret_phase)

      Binarybomb 实验 phase 1 6 secret phase 实验内容 一个 binary bombs 二进制炸弹 下文将简称为炸弹 是一个Linux可执行C程序 包含了7个阶段 phase1 phase6和一个隐藏阶段 炸弹运
    • 计算机系统实验六:程序的链接

      参考教材 计算机系统基础 第二版 袁春风 机械工业出版社 参考慕课 计算机系统基础 四 编程与调试实践 https www icourse163 org learn NJU 1449521162 计算机系统实验导航 实验一 环境安装 htt
    • python读写excel时间的处理

      用python读写excel 当读写内容为时间时 会发现时间变成了浮点数 这篇文章记录了对于这种情况的处理 将时间写入excel dateFormat xlwt XFStyle dateFormat num format str yyyy
    • C/C++中的移位运算符——由二进制转换程序引发的思考

      以前学习移位运算符的时候并没有太多关注它 而此次关于移位运算符的探究 主要源于写的一个二进制显示的程序 include
    • 计算机系统(四)处理器体系结构

      现代微处理器可以称得上是人类创造的最复杂的系统之一 一块手指甲大小的硅片上 可以容纳一个完整的高性能处理器 大的高速缓存 以及用来连接到外部设备的逻辑电路 到目前为止 我们看到的计算机系统只限于机器语言程序级 我们知道处理器必须执行一系列指
    • 无符号数 有符号数 与 补码

      无符号数 有符号数 与 补码 本文是深入理解计算机系统这本书里面关于补码有符号数无符号数章节的一个摘要和读书报告 我个人认为这本书关于这一段的表述 要比绝大多数网上的博客甚至是国内教材要深入浅出的多 同时由于markdown的文档表示公式很
    • 操作系统CPU调度

      概述 多道程序操作系统的基础 通过在进程之间切换CPU 操作系统可以提高计算机的吞吐率 对于单处理器系统 每次只允许一个进程运行 任何其他进程必须等待 直到CPU空闲能被调度为止 CPU按一定的调度算法从就绪队列中选择一个进程 把CPU的使
    • Win32程序之进程的原理

    • 深入理解计算机系统-笔记

      计算机系统漫游 程序 程序的生命周期从一个源程序 源文件 开始 即程序员利用编辑器创建并保存的文本文件 如文件名为hello c的c语言程序 源程序是由0和1组成的位序列 8个位被组织成一组 称为字节 每个字节表示程序中的某个文本字符 这种
    • 【科普】CRC校验(一)什么是CRC校验?

      目录 CRC 循环冗余校验 CRC 校验码的生成 CRC 的发送方与接收方 发送方 接收方 除法异或运算示意图 CRC 循环冗余校验 CRC Cyclic Redundancy Check 循环冗余检验 是一种用于检测数字数据错误的技术 作
    • 【C/C++】浮点数的比较

      本文为 C C 学习总结 讲解浮点数的比较 浮点数经过大量运算后会损失精度 对比较操作带来较大困扰 因为 C 中的 操作需要完全相同时才能判定为 true 我们引入一个极小数 eps 修正误差 比较运算符 若一个数 a 落在 b eps b
    • 数据密集型应用系统设计(2)

      文章目录 数据模型与查询语言 NoSQL 数据库历史 关系数据库与文档数据库现状 数据查询语言 图状数据模型 小结 数据模型与查询语言 大多数应用程序是通过一层层叠加数据模型来构建的 例如 应用程序开发人员观测现实世界 通过对象或者数据结构

    随机推荐

    • 文件没保存怎么恢复?3种方法恢复未保存office文档

      是否遇到过Excel Word或者PPT程序由于电脑断电 崩溃导致没有及时保存文档 如何恢复未保存的office文档文件 本文中提供了3种方法 用以帮助用户了解如何恢复未保存的office文档 以Word为例 数据蛙为大家图文介绍每种办法的
    • spring提前加载,懒加载,bean的作用域和注入注解讲解

      前言 sping知识随笔笔记 spring提前加载 懒加载 bean的作用域和注入注解讲解 spring提前加载 懒加载 bean的作用域和注入注解讲解 前言 1 depends on 2 bean的作用域 3 lazy init 懒加载
    • Spring Boot事务配置管理

      Spring Boot事务配置管理 场景 我们在开发企业应用时 由于数据操作在顺序执行的过程中 线上可能有各种无法预知的问题 任何一步操作都有可能发生异常 异常则会导致后续的操作无法完成 此时由于业务逻辑并未正确的完 成 所以在之前操作过数
    • HJ32 密码截取

      题目 HJ32 密码截取 题解 暴力截取所有子串 利用双指针判断子串是否为回文串 获取最大长度回文串 public int interceptPassword String password int maxLength 100 for in
    • vue 单页面(SPA) ,IOS端页面跳转后调用微信jssdk 时报错: "invalid signature"的解决方案

      背景 1 JS接口安全域名 OK 2 Android手机 微信开发者工具 测试分享都没问题 问题 在IOS手机微信端 从A页面 http a com A 跳转到B页面 http a com B 后 B页面进行分享时就会报签名 invalid
    • div让两个按钮并排显示在一行中

      做微信小程序 查了一些方法 对于我来说都不适用 有各种各样的问题 下面的这个试了 可以 wxml语法
    • java android小程序_java和android一些小程序

      Java 和 android 的一些小程序 1 给定字符串 String str a b c g b h l b h r v 剔除重 复的 并统计出之后其个数 public class zhaoshu1 构造遍历字符串及将重复出现的字符置空
    • 基于YOLOv5&opencv的交通道路三角锥检测系统(部署教程&源码)

      1 研究背景与意义 随着城市化进程的加快和交通流量的不断增加 交通安全问题成为了一个日益突出的社会问题 其中 交通道路上的三角锥是一种常见的交通安全设施 用于标记道路施工 交通事故现场 道路封闭等情况 然而 由于道路规模庞大 人力资源有限
    • GCN初步尝试

      任务如下 读取cora数据集 有2708个节点 每个节点有1433个特征 每个节点属于7类中的一类 节点之间存在边 注 cora的节点标号不是从0开始计数 故需要进行处理 附上一份简约代码 建立一个两层的GCN 这里的edges是经过节点重
    • GitBucket 搭建属于自己的GitHub。

      GitBucket是一个开源的代码管理仓库 就像GitHub一样 什么意思了 说白了我们可以下载GitBucket 然后放到自己服务器的Tomca容器上 就可以把代码往上面提交 GitHub你提交的代码都是可以被其它人看到的 除非你付费 但
    • 西数ZN540如何修改sector size

      写在前面 因需要在ZN540上挂载F2FS 故需要两块盘 一块传统SSD一块ZNS SSD 对于ZN540 信息如下 由于其扇区大小为4KiB 而自己服务器上没有逻辑扇区为4KiB的盘 例如三星883 所以当用883做传统盘的时候 格式化m
    • 基因富集分析 GSEA for time-course

      基因富集分析 Gene Set Enrichment Analysis GSEA 是一种针对全基因组表达谱芯片数据的分析方法 将基因与预定义的基因集进行比较 即综合现有的对基因的定位 性质 功能 生物学意义等信息基础 构建一个分子标签数据库
    • html怎么把视频设置为背景,如何将视频设置为网页背景

      第一步 准备工作 工欲善其事必先利其器 我们首先需要准备一个视频 第二步 html中引入视频 这里我们需要用到了video 标签 然后在source里面写视频的路径 autoplay用来使其自动播放 muted用来使其静音 loop为循环播
    • 数学建模:9 多元线性回归分析

      向前 后逐步回归筛选自变量 检验自变量之间是否多重共线性 计算VIF 内生性 核心变量与解释变量 虚拟变量 个数 分类数 1 否则有多重共线性 stata软件 回归模型假设检验 回归系数假设检验与解释 自变量对因变量的影响程度 标准化回归系
    • 如何检验数据正态分布_数据不符合正态分布,如何统计描述

      10万 文章推荐的科研神器 秒杀 谷歌翻译 不够用 再送两个 2020 04 09 介 绍 我们一般会在文献的统计方法部分看到这样的描述 对于数值变量 首先进行正态性检验 如果各组均满足正态性 采用均数 标准差 进行统计描述 采用t检验进行
    • php类中的私有化构造函数,在类中将构造函数私有化有什么用?

      通过提供私有构造函数 可以防止在此类之外的任何地方创建类实例 提供这种构造函数有几种用例 答 您的类实例是在static方法中创建的 static然后将该方法声明为public class MyClass private MyClass p
    • JAVA产生五位随机验证码

      用Java写出一个程序产生5位验证码 且前四位是字母不限大小写最后一位是数字 解法一 import java util Random public class YanZhengMa public static void main Strin
    • 【华为面试题】栈

      思路 首先 遍历输入的压缩字符串 三种情况 1 遇到字符 将其入栈 2 遇到字符 计算重复次数 将栈中的字符组合成一个字符串 重复拼接后再入栈 3 遇到字母字符 判断下一个字符是否是数字 若是数字 则将当前字母重复拼接后入栈 若不是数字 则
    • mysql的安装与使用

      1 mysql下载与安装 下载解压 下载地址 https dev mysql com downloads mysql 5 7 html downloads 下载到指定位置 如D mysql 5 7 23 winx64 把解压的文件夹bin目
    • 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.3-2.4)

      GitHub计算机系统CSAPP课程资源 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 1 2 2 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 3 2 4 计算机系统课程 笔记总结 CSAPP第三章
    Powered by Hwhale