各位程序员一定希望自己编写的代码是能让老板赞赏、满意的代码;是能让客户乐意掏钱购买的代码;是能让使用者顺利使用的代码;是能让同行欣赏赞誉的代码;是能让自己引以为豪的卓越代码。本书作者为希望能编写出卓越代码的人提供了自己积累的关于卓越编程的真知灼见。它弥补了计算机科学和工程课程中被忽略的一个部分——底层细节,而这正是构建卓越代码的基石。具体内容包括:计算机数据表示法,二进制数学运算与位运算,内存组织与内存访问,数据类型及其表示,布尔逻辑与数字设计,CPU体系结构,CPU指令集的体系结构,内存体系与内存组织,计算机系统如何与外界通信等。...
第1章 编写卓越代码须知
1.1 编程卓越之道系列
1.2 本卷内容
1.3 本卷所做的假设
1.4 卓越代码的各项特征
1.5 本卷涉及的环境
1.6 获取更多信息
第2章 数值表示
2.1 什么是数
2.2 计数系统(NumberingSystem)
2.2.1 十进制位值计数系统
2.2.2 进制(基数)
2.2.3 二进制计数系统
2.2.4 十六进制计数系统
2.2.5 八进制(基数为8)计数系统
2.3 数/字符串转换
2.4 数的内部表示
2.4.1 位(bits)
2.4.2 位串
2.5 有符号数与无符号数
2.6 二进制数一些有用的特性
2.7 符号扩展,零扩展,以及缩减
2.8 饱和操作(saturation)
2.9 二进制编码的十进制(BCD)表示法
2.10 定点表示法
2.11 比例数格式(scalednumericformats)
2.12 有理数表示法
2.13 获取更多信息
第3章 二进制算术与位运算
3.1 二进制数与十六进制数的算术运算
3.1.1 二进制加法
3.1.2 二进制减法
3.1.3 二进制乘法
3.1.4 二进制除法
3.2 位逻辑运算
3.3 二进制数和位串(bitstring)的逻辑运算
3.4 有用的位运算
3.4.1 使用与运算检测位串的各个位
3.4.2 使用与运算来检测一组位是零/非零
3.4.3 比较一个位串中的一组位
3.4.4 使用逻辑与创建模-n计数器(Modulo—nCounters)
3.5 移位(Shift)与循环移位(Rotate)
3.6 位域与打包(packed)数据
3.7 打包与解包数据
3.8 获取更多信息
第4章 浮点表示法
4.1 浮点运算简介
4.2 IEEE浮点数格式
4.2.1 单精度浮点格式
4.2.2 双精度浮点格式
4.2.3 扩展精度浮点格式
4.3 规格化(norrealization)与反向规格化(denorrealized)数
4.4 舍入(rounding)
4.5 特殊的浮点数
4.6 浮点异常
4.7 浮点运算
4.7.1 浮点表示
4.7.2 浮点加法与减法
4.7.3 浮点乘法与除法
4.8 获取更多信息
第5章 字符表示法
5.1 字符数据
5.1.1 ASCII字符集
5.1.2 EBCDIC字符集
5.1.3 双字节字符集
5.1.4 Llnicode字符集
5.2 字符串
5.2.1 字符串格式
5.2.2 字符串类型:静态,伪动态,以及动态字符串
5.2.3 字符串引用计数
5.2.4 Delphi/Kylix字符串
5.2.5 创建你自己的字符串格式
5.3 字符集合
5.3.1 字符集合的幂集表示法
5.3.2 字符集合的列表表示法
5.4 设计你自己的字符集
5.4.1 设计一种高效的字符集
5.4.2 为数字分组字符码
5.4.3 分组字母字符
5.4.4 比较字母字符
5.4.5 其他字符分组
5.5 获取更多信息
第6章 内存组织与访问
6.1 基本的系统组成部分
6.1.1 系统总线
6.1.2 地址总线
6.1.3 控制总线
6.2 内存物理组织
6.2.1 位地址总线
6.2.2 16位数据总线
6.2.3 32位数据总线
6.2.4 64位总线
6.2.5 在非80x86处理器上访问小数据单位
6.3 大端组织与小端组织
6.4 系统时钟
6.4.1 内存访问与系统时钟
6.4.2 等待状态
6.4.3 高速缓存内存
6.5 CPU内存访问
6.5.1 直接内存寻址模式
6.5.2 间接寻址模式
6.5.3 变址寻址模式
6.5.4 比例变址寻址模式
6.6 获取更多信息
第7章 复合数据类型与内存对象
7.1 指针类型
7.1.1 指针的实现
7.1.2 指针与动态内存分配
7.1.3 指针操作与指针运算
7.2 数组
7.2.1 数组声明
7.2.2 数组在内存中的表示
7.2.3 访问数组元素
7.2.4 多维数组
7.3 记录/结构
7.3.1 Pascal/Delphi中的记录
7.3.2 C/C++中的记录
7.3.3 HLA中的记录
7.3.4 记录的内存存储
7.4 判别式联合
7.4.1 C/C++中的联合
7.4.2 Pascal/Delphi/Kylix中的联合
7.4.3 HLA中的联合
7.4.4 联合的内存存储
7.4.5 联合的其他用途
7.5 获取更多信息
第8章 布尔逻辑与数字设计
8.1 布尔代数
8.1.1 布尔运算符
8.1.2 布尔代数的公理
8.1.3 布尔运算符优先级
8.2 布尔函数与真值表
8.3 函数号
8.4 布尔表达式的代数运算
8.5 标准型
8.5.1 最小项之和标准型与真值表
8.5.2 使用代数方法得到最小项之和标准型
8.5.3 最大项之积标准型
8.6 布尔函数化简
8.7 但是,这些和计算机又有什么关系呢
8.7.1 电子线路与布尔函数的对应
8.7.2 组合电路
8.7.3 时序与钟控逻辑(SequentialandClockedLogic)
8.8 获取更多信息
第9章 CPU体系结构
9.1 CPU设计基础
9.2 指令解码与执行:随机逻辑与微码
9.3 指令执行详解
9.3.1 mov指令
9.3.2 add指令
9.3.3 inz指令
9.3.4 loop指令
9.4 并行——提高处理速度的关键
9.4.1 预取队列
9.4.2 妨碍预取队列性能的情况
9.4.3 流水线操作——重叠执行多条指令
9.4.4 指令高速缓存——提供访问内存的多条通路
9.4.5 流水线相关(pipelinehazards)
9.4.6 超标量运算——并行执行指令
9.4.7 乱序执行(Out—of-OrderExecution)
9.4.8 寄存器重命名
9.4.9 甚长指令字(VLIW)体系结构
9.4.10 并行处理
9.4.11 多处理
9.5 获取更多信息
第10章 指令集体系结构
10.1 指令集设计的重要性
10.2 指令设计基本目标
10.2.1 选择指令长度
10.2.2 规划未来
10.2.3 选择指令
10.2.4 给指令指派操作码
10.3 Y86假想处理器
10.3.1 Y86的限制
10.3.2 Y86指令
10.3.3 Y86的寻址模式
10.3.4 Y86指令编码
10.3.5 Y86指令编码举例
10.3.6 扩展Y86指令集
10.4 80x86指令编码
10.4.1 编码指令操作码
10.4.2 add指令编码的例子
10.4.3 编码立即操作数
10.4.4 8,16与32位操作数编码
10.4.5 指令的替代编码(altermateencoding)
10.5 指令集设计对程序员的意义
10.6 获取更多信息
第11章 内存体系结构与组织
11.1 内存层次结构
11.2 内存层次结构是如何工作的
11.3 内存子系统的相对性能
11.4 高速缓存体系结构
11.4.1 直接映射高速缓存
11.4.2 全相联高速缓存
11.4.3 n路组相联高速缓存
11.4.4 高速缓存方案与数据访问类型的匹配
11.4.5 缓存线替换策略
11.4.6 写数据到内存中
11.4.7 高速缓存使用与软件
11.5 虚存,保护,以及页面调度
11.6 颠簸
11.7 NUMA与外围设备
11.8 编写理解内存层次结构的软件
11.9 运行时内存组织
11.9.1 静态与动态对象,绑定,以及生命期
11.9.2 代码,只读,以及常量段
11.9.3 静态变量段
11.9.4 未初始化存储(BSS)段
11.9.5 栈段
11.9.6 堆段与动态内存分配
11.10 获取更多信息
第12章 输入与输出(I/O)
12.1 将CPU与外界相连
12.2 将端口连接到系统的其他方式
12.3 I/O机制
12.3.1 内存映射输入输出
12.3.2 输入输出与高速缓存
12.3.3 I/O映射输入/输出
12.3.4 直接内存访问(DMA)
12.4 输入输出速度等级
12.5 系统总线与数据传输率
12.5.1 PCI总线的性能
12.5.2 ISA总线的性能
12.5.3 AGP总线
12.6 缓冲
12.7 握手
12.8 I/O端口的超时
12.9 中断与轮询方式I/O
12.10 保护模式操作与设备驱动程序
12.10.1 设备驱动程序(DeviceDrivers)
12.10.2 与设备驱动程序以及“文件”通信
12.11 深入研究各种PC外设
12.12 键盘
12.13 标准PC并口
12.14 串口
12.15 磁盘驱动器
12.15.1 软盘驱动器
12.15.2 硬盘驱动器
12.15.3 RAID系统
12.15.4 Zip与其他光读软盘驱动器
12.15.5 光驱(opticaldrive)
12.15.6 CD—ROM,CD—R,CD—R/W,DVD,DVD—R,DVD—RAM与DVD—R/W驱动器
12.16 磁带驱动器
12.17 闪存
12.18 RAM盘与半导体盘
12.19 SCSI设备与控制器
12.20 IDE/ATA接口
12.21 大容量存储设备上的文件系统
12.21.1 使用空闲空间位图(bitmap)管理文件
12.21.2 文件分配表
12.21.3 块表文件组织
12.22 编写处理大容量存储设备上的数据的软件
12.22.1 文件访问性能
12.22.2 同步与异步I/O
12.22.3 I/O类型的影响
12.22.4 内存映射文件
12.23 通用串行总线(USB)
12.23.1 LISB的设计
12.23.2 USB的性能
12.23.3 USB传输的类型
12.23.4 USB设备驱动程序
12.24 鼠标,触控板与其他指点设备
12.25 操纵杆与游戏控制器
12.26 声卡
12.26.1 音频接口外设如何产生声音
12.26.2 音频与MIDI文件格式
12.26.3 编程处理音频设备
12.27 获取更多信息
运用底层语言思想编写高级语言代码
附录A ASCIl字符集
索引
《安得堂咏草》内容简介:《安得堂咏草》为施小炜诗集,共收录其所创作的旧体诗词一百三十八首,分为悔其集、面壁斋集篇、暗疏乡集
#NAME?
《老年服务沟通实务》内容简介:本书根据养老照护员岗位的需求,设计项目和任务,设计了人际沟通技巧、接待沟通、团队工作沟通、照
《商务英语写作100主题》内容简介:互联网+时代,你最需要的英语学习书! 100个商务主题,200篇标准范文,2000余个扩充例句,微信推
《简单高效LaTeX》内容简介:本书从解答为何要学习使用LaTeX谈起,以丰富的范例和简洁的语言,系统介绍了科学排版系统LaTeX的基础知
《内容经济》内容简介:随着知识经济的高速发展以及人们信息获取方式的不断升级,知识付费行业在近几年呈现出了迅猛的发展势头。如
分布式算法20多年来一直是倍受关注的主流方向。本书第二版不仅给出了算法的最新进展,还深入探讨了与之相关的理论知识。这本教材
《微机原理及应用》是教育科学“十五”国家规划课题研究成果。全书共13章,包括:基础知识,微型计算机概论,8086/8088指令系统与
《idea+提升创意力的设计诀窍书》内容简介:没有设计素材怎么办?如何在经费捉襟见肘的情况下做出好设计?怎样运用不同的设计软件
随着虚拟环境、增强现实、混合现实以及普适计算等“脱离桌面”技术的出现,三维用户界面(3DUI)的设计和开发已经成为一个重要的
在不久的将来,“智能”科技与“大数据”将更大规模地、无微不至地介入我们的政治、文化和日常生活。数字化生存的诱惑就在于,人
《心理画:摆脱精神内耗的涂鸦心理学》内容简介:在生命的某个时刻,你是否怀疑过自己值不值得被爱?是否在取悦别人的过程中压抑或
新连接:互联网+产业转型,互联网+企业变革 本书特色 当前正处于信息通信技术飞速发展和社会经济面临转型的关键时期,有人兴奋,有人焦虑;有人坚定前行,有人迷茫失措...
《中西文化风物志》内容简介:中西文化历经千年的历史和沉淀,博大精深、泾渭分明,为了顺应文化汇通的时代趋势和通识人文的习得需
《Kotlin语言实例精解》内容简介:本书详细阐述了与Kotlin开发相关的基本解决方案,主要包括俄罗斯方块游戏、设计并实现Messenger后
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻
《百年求索:演进与跃迁》内容简介:书稿内容来自2019年春节在北京中法大学旧址举办的中华优秀传统文化进入山东地方必修课程研讨对
本书是广受赞誉的Struts2优秀教程,它全面而深入地阐述了Struts2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使
Python金融大数据分析 本书特色 python凭借其简单、易读、可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析、处理大量数据的金融行业得到了广泛而迅速...
《学设计,非去不可》收录了王千睿、胡佑宗、周育如、施令红、甘泰来、高弘树、赖雨农、黄怡儒、林国基、林怡芬、史明辉、庞铫13位