文章目录

    • 布尔代数和基本逻辑电路
    • 无符号数加法器
    • 整数加减运算器
    • 从c表达式到逻辑电路
    • 整数的乘运算
  • 整数乘法漏洞精讲例题
    • 整数除法运算
  • 一个牛逼的除法运算函数
    • 浮点加减运算
  • 异常经典案例
    • 浮点运算的精度
  • 浮点数运算比较经典案例
  • 浮点数运算精度举例(爱国者导弹)

布尔代数和基本逻辑电路

真值表:0 1 运算的核心基础




无符号数加法器

全加器:
即考虑低位的进位标志符,又考虑当前运算向不向高位进位

n位加法器:充分解释了一位加法器的设计缘由,低高进位的设计很合理

零标志ZF = 1,补码特意留下的一种特殊编码

整数加减运算器


整数加减部件核心

从c表达式到逻辑电路




整数的乘运算

两个运算数应该是同一个类型,如果不是会先转化为同一个类型,(常常会自动执行类型提升操作)

整数乘法可以写表达式判断是否溢出,简单的将乘出来的数再除以一个因子看等不等于另一个因子

整数的溢出可以在机器数级别上对高位符号判断


整数乘指令的溢出判定可以通过对高位结果进行分析,n*n 位会得到2n位

整数乘法漏洞精讲例题


变量乘法用移位操作更方便

整数除法运算

整数除只有一种情况会发生溢出
一般整数除法会向0舍入
整数除0的结果无法表示

除法指令可能被优化成取反指令

除法运算时间周期长比乘法周期长,可以整除就用移位

整数除法舍入的原理:

一个牛逼的除法运算函数

浮点加减运算

浮点数运算:规格化格式
阶码可能溢出
尾数溢出,结果可以不溢出

对几种异常情况的定义
浮点数的一些异常可以被处理,程序可以继续运行

异常经典案例


浮点数的对阶过程导致小数很多有效位被舍去

尾数移位和阶码加减同步保持数据表示的正确性

浮点运算的精度





float 单精度,有效位数只有24位,所以从int 到float可能会有数据舍入,但是double就不会

浮点数运算比较经典案例


浮点数不满足加法结合律

浮点数运算精度举例(爱国者导弹)





计算机系统基础:程序与运算相关推荐

  1. 计算机系统基础 实验——位运算

    目录 1.negate(取负) 2.bitOr(两数相或) 3.conditional(选择运算符) 4.byteNot(对某个字节取反) 5.allEvenBits 6.byteSwap 7.bit ...

  2. 袁春风老师:计算机系统基础(一) 第一章

    南京大学 计算机系统基础(一)主讲:袁春风老师 基础好的读目录回顾一下即可 本课程是以csapp为教材进行讲解的 程序执行结果,不仅取决于算法.程序编写.编程语言的语法语义 ,而且取决于语言处理系统. ...

  3. 计算机AL教程笔记,计算机系统基础学习笔记(2)-数据的位运算操作

    C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作. 逻辑运算操作 C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或.在编译时,编译器会根据操作数的宽度分别转换为不同的指令 ...

  4. 计算机系统基础 南京大学,计算机系统基础(一):程序的表示、转换与链接

    本课程是"计算机系统基础"系列课程中的第一门,主要介绍高级语言程序中的数据类型及其运算.语句和过程调用等是如何在计算机系统中实现的.主要包含三个主题:(1)表示.不同数据类型(如带 ...

  5. 【计算机系统基础4】程序的机器级表示

    [计算机系统基础4]程序的机器级表示 4.程序的机器级表示 4.1(:school: CMU补充 )x86-64 Linux 寄存器使用 4.2传送指令 4.2.1`mov` 指令 4.2.2 `mo ...

  6. 软考 程序员教程-第一章 计算机系统基础知识

    软考 程序员教程-第一章 计算机系统基础知识 为了督促自己学习,告别懒惰,在此先给自己定个小目标,请大家监督哟! 目标:一个月内过一遍<程序员教程>,下一个月开始上真题. 简单看了下,我在 ...

  7. 《计算机系统基础》—— 运算

    文章目录 <计算机系统基础>--运算 整数 按位运算 作用 操作 位移运算 作用 操作 乘法运算 除法运算 浮点数 加减运算 乘除运算 <计算机系统基础>--运算

  8. 冯·诺依曼结构及其主要思想【计算机系统基础01】

    冯·诺依曼结构,让每一位学习计算机系统基础的学生印象深刻,因为它是现代计算机的基础,是计算机系统知识架构中所绕不开的重要组成部分.计算机系统基础的学习,也从冯诺依曼结构开始. 世界上第一台通用电子计算 ...

  9. 计算机系统基础——我与袁春风不得不说的知识——入门必看

    [计算机系统基础] 期末复习超好用,点赞收藏加关注 文章目录 [计算机系统基础] 前言 一.计算机系统概述  1.我们为什么要学习计算机系统基础?  2.计算机系统的基本组成与功能 1.冯诺依曼结构的 ...

  10. 南大袁春风计算机系统基础(一)笔记

    南大袁春风计算机系统基础(一)笔记 一.计算机系统基本组成与基本功能 冯.诺依曼结构计算机模型 冯.诺依曼计算机结构的特点 计算机的指令和数据 二.程序开发和执行过程简介 程序开发的发展过程 典型程序 ...

最新文章

  1. Android开发 asmack断线收不到通知的BUG解决
  2. 最新版Kubernetes常用命令大全
  3. JAVA 编程开发入门-张晨光-专题视频课程
  4. 前端 input怎么显示null_小猿圈WEB前端之HTML5+CSS3面试题(一)
  5. @开发者,第二届“马栏山”杯国际音视频算法大赛高分攻略请查收,心动大奖等你来战!...
  6. 携程运维自动化平台,上万服务器变更也可以很轻松
  7. DMM通过增加USDK作为支持的mToken提案
  8. mysqli得到记录数量
  9. iOS:使用block进行类与类,控制器与控制器之间的传值
  10. Android6.0 dump h264/h265编码裸流(二)
  11. 犀牛6.0grasshopper翻译插件_Rhino 6.0犀牛三维建模 软件下载安装包教程(附下载方法)...
  12. 芯片数据手册阅读方法
  13. Http Headers各属性简介及常见安全攻击
  14. CodeForces 596 B Wilbur and Array
  15. ​20X44 FCPX模板电影胶片滚动回忆照片相册图文展示动画 Move Time
  16. 2019CSP-J组题目-加工零件
  17. JustSoso笔记
  18. 每日C语言(The 7th day)——折半查找法
  19. 美信GMSL技术让汽车数据传输更为高效
  20. 爬虫:Scrapy分类爬取苏宁易购书城

热门文章

  1. 转存储过程实现分页1
  2. ORM框架-工具-产品开发之四 开发代码生成器 Template Studio Development (一)
  3. jquery实现图片懒加载
  4. QtUI设计:设置控件透明
  5. 毕业论文写作Tips
  6. C++的Matlab接口
  7. 一文读懂RPA与BPM的区别和联系
  8. 静态路由与动态路由概念及实例
  9. elasticsearch和mysql排序问题
  10. Pokémon Go火遍全球,开启全民捕捉小精灵的时代