计算机系统基础:程序与运算
文章目录
- 布尔代数和基本逻辑电路
- 无符号数加法器
- 整数加减运算器
- 从c表达式到逻辑电路
- 整数的乘运算
- 整数乘法漏洞精讲例题
- 整数除法运算
- 一个牛逼的除法运算函数
- 浮点加减运算
- 异常经典案例
- 浮点运算的精度
- 浮点数运算比较经典案例
- 浮点数运算精度举例(爱国者导弹)
布尔代数和基本逻辑电路
真值表:0 1 运算的核心基础
无符号数加法器
全加器:
即考虑低位的进位标志符,又考虑当前运算向不向高位进位
n位加法器:充分解释了一位加法器的设计缘由,低高进位的设计很合理
零标志ZF = 1,补码特意留下的一种特殊编码
整数加减运算器
整数加减部件核心
从c表达式到逻辑电路
整数的乘运算
两个运算数应该是同一个类型,如果不是会先转化为同一个类型,(常常会自动执行类型提升操作)
整数乘法可以写表达式判断是否溢出,简单的将乘出来的数再除以一个因子看等不等于另一个因子
整数的溢出可以在机器数级别上对高位符号判断
整数乘指令的溢出判定可以通过对高位结果进行分析,n*n 位会得到2n位
整数乘法漏洞精讲例题
变量乘法用移位操作更方便
整数除法运算
整数除只有一种情况会发生溢出
一般整数除法会向0舍入
整数除0的结果无法表示
除法指令可能被优化成取反指令
除法运算时间周期长比乘法周期长,可以整除就用移位
整数除法舍入的原理:
一个牛逼的除法运算函数
浮点加减运算
浮点数运算:规格化格式
阶码可能溢出
尾数溢出,结果可以不溢出
对几种异常情况的定义
浮点数的一些异常可以被处理,程序可以继续运行
异常经典案例
浮点数的对阶过程导致小数很多有效位被舍去
尾数移位和阶码加减同步保持数据表示的正确性
浮点运算的精度
float 单精度,有效位数只有24位,所以从int 到float可能会有数据舍入,但是double就不会
浮点数运算比较经典案例
浮点数不满足加法结合律
浮点数运算精度举例(爱国者导弹)
计算机系统基础:程序与运算相关推荐
- 计算机系统基础 实验——位运算
目录 1.negate(取负) 2.bitOr(两数相或) 3.conditional(选择运算符) 4.byteNot(对某个字节取反) 5.allEvenBits 6.byteSwap 7.bit ...
- 袁春风老师:计算机系统基础(一) 第一章
南京大学 计算机系统基础(一)主讲:袁春风老师 基础好的读目录回顾一下即可 本课程是以csapp为教材进行讲解的 程序执行结果,不仅取决于算法.程序编写.编程语言的语法语义 ,而且取决于语言处理系统. ...
- 计算机AL教程笔记,计算机系统基础学习笔记(2)-数据的位运算操作
C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作. 逻辑运算操作 C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或.在编译时,编译器会根据操作数的宽度分别转换为不同的指令 ...
- 计算机系统基础 南京大学,计算机系统基础(一):程序的表示、转换与链接
本课程是"计算机系统基础"系列课程中的第一门,主要介绍高级语言程序中的数据类型及其运算.语句和过程调用等是如何在计算机系统中实现的.主要包含三个主题:(1)表示.不同数据类型(如带 ...
- 【计算机系统基础4】程序的机器级表示
[计算机系统基础4]程序的机器级表示 4.程序的机器级表示 4.1(:school: CMU补充 )x86-64 Linux 寄存器使用 4.2传送指令 4.2.1`mov` 指令 4.2.2 `mo ...
- 软考 程序员教程-第一章 计算机系统基础知识
软考 程序员教程-第一章 计算机系统基础知识 为了督促自己学习,告别懒惰,在此先给自己定个小目标,请大家监督哟! 目标:一个月内过一遍<程序员教程>,下一个月开始上真题. 简单看了下,我在 ...
- 《计算机系统基础》—— 运算
文章目录 <计算机系统基础>--运算 整数 按位运算 作用 操作 位移运算 作用 操作 乘法运算 除法运算 浮点数 加减运算 乘除运算 <计算机系统基础>--运算
- 冯·诺依曼结构及其主要思想【计算机系统基础01】
冯·诺依曼结构,让每一位学习计算机系统基础的学生印象深刻,因为它是现代计算机的基础,是计算机系统知识架构中所绕不开的重要组成部分.计算机系统基础的学习,也从冯诺依曼结构开始. 世界上第一台通用电子计算 ...
- 计算机系统基础——我与袁春风不得不说的知识——入门必看
[计算机系统基础] 期末复习超好用,点赞收藏加关注 文章目录 [计算机系统基础] 前言 一.计算机系统概述 1.我们为什么要学习计算机系统基础? 2.计算机系统的基本组成与功能 1.冯诺依曼结构的 ...
- 南大袁春风计算机系统基础(一)笔记
南大袁春风计算机系统基础(一)笔记 一.计算机系统基本组成与基本功能 冯.诺依曼结构计算机模型 冯.诺依曼计算机结构的特点 计算机的指令和数据 二.程序开发和执行过程简介 程序开发的发展过程 典型程序 ...
最新文章
- dubbo协议_阿里P8架构师谈微服务架构:Dubbo+Docker+SpringBoot+Cloud
- 解决虚拟机vmware虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
- 《Head First Java》读书笔记(3) - 异常和IO
- javascript技巧收集(200多个)---转
- 身怀56个IM技术专利,网易云信如何改变即时通讯?
- mysql 语句优化实例_MySQL 语句优化实例
- 【纯干货】Amoeba实现MySQL主从同步与读写分离
- Ubuntu下基于Virtualenv构建Python开发环境
- 何恺明团队最新研究:3D目标检测新框架VoteNet,两大数据集刷新最高精度
- [恢]hdu 2062
- 模仿showModalDialog的总在最前
- javascript 同时下载多个文件
- Java之Socket实现文件传输
- MATLAB矩阵的平均值和最大值
- 如何恢复Windows默认共享
- 捋一捋dubbo配置
- 20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结
- 一款免费的屏幕录制软件
- 数据结构 —— 双向链表(超详细图解 接口函数实现)
- web 项目中资源下载出错,或者下载的文件对应的形式不对应,web 项目下载的文件自动打包为一个压缩包
热门文章
- (急聘) 高级软件工程师(C#.Net/JS) http://job.cnblogs.com/offer/8966/
- ES6 模块化操作
- vue中子组件向父组件传递数据(实现加减的实例)
- bootstrap时间控件
- 前端用Sass实现星级评定效果,简单快捷实现星级切换。
- PCL:python pcl解码RGB- point_cloud2.read_points rgb
- AI:IPPR的数学表示-CNN结构进化(Alex、ZF、Inception、Res、InceptionRes)
- Linux shell 操作命令 mkdir
- Handler源码剖析
- Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城