计算机系统课程 笔记总结 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) 的相关文章

    • 计算机二级-C语言-计算机系统

      还未解决的题目 xff1a 5 3 xff1a 22 xff1b 5 4 xff1a 2 3 5 7 13 18 20 22 24 25 27 29概念模式 xff08 模式 xff09 xff1a 描述全局数据逻辑结构 xff1b 外模式
    • 【计算机系统】CPU是如何运行程序的

      一 CPU组成部分 寄存器 xff1a 存储CPU执行的指令的数据 xff0c CPU每次执行指令都会重新更新寄存器 程序计数器 PC xff1a 记录CPU即将执行的指令内存中的地址 逻辑控制单元 ALU xff1a CPU中负责逻辑计算
    • 多核编程与单核多线程编程

      并发 时间段内有很多的线程或进程在执行 但何时间点上都只有一个在执行 多个线程或进程争抢时间片轮流执行 并行 时间段和时间点上都有多个线程或进程在执行 单核cpu的话只能是并发 多核cpu才能做到并行执行 那有人可能有这样的疑问 那多进程的
    • CSAPP第二章课后作业题

      include
    • CSAPP-数据表示与运算实验

      目录 一 实验目的 二 实验要求及注意事项 三 实验原理与内容 1 位操作 2 补码运算 3 浮点数操作 四 实验设备与软件环境 五 实验过程与结果 1 操作符及运算概览 1 位运算和逻辑运算 2 补码运算 3 浮点数 2 功能实现与结论
    • CSAPP阅读笔记——第二章:信息的表示和处理

      核心内容 编码原则 无符号 补码 浮点 溢出 无符号 补码 精度 浮点 一 信息存储 字节 存储最小单元 程序的内存管理是在虚拟地址层面上 字长 用于指明整数和指针数据的大小 编码虚拟地址 决定虚拟地址空间大小 数据大小 编码数字的格式 其
    • csapp第三章总结

      目录 3 1程序编码 1 编译器优化等级 2 汇编代码 3 编译 4 反汇编器 3 2数据格式 3 3访问信息 1 寄存器 2 操作数类型 3 数据传送指令mov 4 加载有效地址lea 5 算术和逻辑操作 3 4控制 1 条件码 2 访问
    • 数据密集型应用系统设计(1)

      文章目录 可靠 可拓展可维护的应用系统 软件系统最重要的三个特征 可靠性 可扩展性 可维护性 小结 可靠 可拓展可维护的应用系统 软件系统最重要的三个特征 可靠性 即使发生了某些错误 系统也可继续正常工作 故障 faults 或者叫错误 与
    • 【深入理解计算机系统】第二章重点汇总

      2 1 信息的存储 十六进制转二进制 将十六进制的每一位转换成一个4位的二进制 即 0123456789 A B C D E
    • 磁盘存储原理

      最近学习linux内核源码 读到操作系统boot引导相关内容时 对于磁盘相关原理介绍引起我的兴趣 阅读相关资料后 对磁盘工作原理做一个总结 参考资料为深入理解计算机系统 CSAPP 磁盘是广泛应用的数据存储设备 存储容量比较大 相比RAM等
    • 内存管理技术——离散分配方式

      上一篇讲到 采用固定分区的方式 会产生页内碎片等缺点 因此引入了动态分区方式 但动态分区又产生了外部碎片 导致内存的利用率也不理想 为了进一步提高内存的利用率 所以就产生了离散的分配方式 理论来源于实际问题 这很好的体现在计算机科学中 离散
    • CSAPP第三版运行时打桩Segmentation fault

      CSAPP第三版7 13 3节提到了运行时打桩机制 它可以在运行时将程序中对共享库函数的调用进行截获 替换为执行自己的代码 这个机制基于动态链接器的LD PRELOAD环境变量 如果LD PRELOAD环境变量被设置为一个共享路径名的列表
    • L1,L2,L3 Cache缓存原理

      一 介绍 CPU缓存 Cache Memory 也被称为Cache 是存储器子系统的组成部分 存放着程序经常使用的指令和数据 从广义的角度上看 Cache是快设备为了缓解访问慢设备延时的预留的Buffer 从而可以在掩盖访问延时的同时 尽可
    • 【linux】常用shell指令 [不断补充中...]

      前言 shell是一种脚本语言 需要有编译器执行 即 应用程序 gt shell gt 操作系统 gt 硬件 bash是linux下默认的shell sh是unix下默认的shell 多命令执行 xx xx 前面执行成功才会执行后面的命令
    • CSAPP Lab4- PerfLab

      代码优化 typedef struct unsigned short red R value unsigned short green G value unsigned short blue B value pixel 图像用一维数组表示
    • 什么是环境变量?为什么java要配置环境变量?

      本文是将https blog csdn net qq 37872792 article details 80642985 与 https blog csdn net Pre waist L article details 79696507两
    • x86-64 汇编基础 ---- 记读 《CS: APP》

      x86 64 汇编基础 记读 CS APP 通常情况下 使用现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有效 1 看懂汇编码 1 汇编码的格式 ATT格式 这是GCC OBJDUMP和其它一些工具的常用格式 由
    • 无符号数 有符号数 与 补码

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

      一 分段的背景 在8086处理器诞生之前 内存寻址方式就是直接访问物理地址 8086处理器为了寻址1M的内存空间 把地址总线扩展到了20位 但是 一个尴尬的问题出现了 ALU的宽度只有16位 也就是说 ALU不能计算20位的地址 为了解决这
    • CSAPP——2.2整数表示

      两种整数 1 非负数 unsigned 2 负数 0 正数 T 补码 B 二进制 U 无符号数 1 整数数据类型 unsigned char short int long int32 t int64 t 2 无符号数的编码 假设位向量 x

    随机推荐

    • 文件没保存怎么恢复?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