您好,欢迎光临有路网!
编程卓越之道(卷1):深入理解计算机(第2版)
QQ咨询:
有路璐璐:

编程卓越之道(卷1):深入理解计算机(第2版)

  • 作者:(美)Randall Hyde(兰德尔海德)
  • 出版社:电子工业出版社
  • ISBN:9787121445316
  • 出版日期:2022年12月01日
  • 页数:456
  • 定价:¥150.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    **的代码需要利用现代编程语言的先进特性来实现软件功能。但软件*终都要运行在计算机上,无论它是采用哪种编程语言编写的。因此,**的软件代码也要充分地利用计算机中的各种资源,将计算机的性能发挥到**。现代编程语言将这些知识隐藏了起来,容易被我们忽视。因此,《编程**之道》系列的**卷《深入理解计算机》将**放在软件执行背后的计算机底层上,深入浅出地介绍了计算机体系结构的方方面面,帮助我们理解如何才能写出在计算机上**运行的代码。本书具体内容包括:数字、字符串及复合数据结构在计算机中的表示形式,以及如何在内存层次结构中访问这些数据;基本的二进制运算、位运算、布尔逻辑,以及如何设计完成运算的**处理器指令集;输入/输出、大容量存储等丰富多彩的外设,以及把这些外设和计算机相连进行通信的各种总线技术。本书适合软/硬件开发人员及系统程序员、移动及嵌入式设备***、体系结构设计人员,以及高校计算机相关专业师生。
    目录
    1 编写**代码须知 1 1.1 《编程**之道》系列 1 1.2 本书涵盖的主题 2 1.3 阅读本书的前提 4 1.4 **代码的特征 5 1.5 本书要求的环境 6 1.6 额外建议 7 1.7 更多信息 7 2 数字表示 8 2.1 什么是数字 8 2.2 计数系统 9 2.2.1 十进制位值计数系统 10 2.2.2 底数(基数) 11 2.2.3 二进制计数系�� 12 2.2.4 十六进制计数系统 15 2.2.5 八进制计数系统 17 2.3 数字/字符串转换 18 2.4 内部数字表示形式 20 2.4.1 位 20 2.4.2 位串 21 2.5 有符号和无符号数 24 2.6 二进制数的属性 26 2.7 符号扩展、零扩展和收缩 27 2.8 饱和操作 31 2.9 二进制编码的十进制表示 32 2.10 定点表示形式 33 2.11 比例数字格式 35 2.12 有理数表示形式 37 2.13 更多信息 38 3 二进制算术运算和位运算 39 3.1 二进制和十六进制数字的算术运算 39 3.1.1 二进制加法 40 3.1.2 二进制减法 41 3.1.3 二进制乘法 42 3.1.4 二进制除法 43 3.2 位的逻辑运算 45 3.3 二进制数值和位串的逻辑运算 47 3.4 有用的位运算 48 3.4.1 使用AND运算判断位串中的一位 49 3.4.2 使用AND运算判断多个位为零或非零 49 3.4.3 比较二进制字符串中的多个位 50 3.4.4 使用AND运算创建模n计数器 51 3.5 移位和旋转 52 3.6 位字段和打包数据 55 3.7 数据的打包和解包 60 3.8 更多信息 65 4 浮点表示形式 66 4.1 浮点运算简介 66 4.2 IEEE 浮点格式 72 4.2.1 单精度浮点格式 72 4.2.2 双精度浮点格式 74 4.2.3 扩展精度浮点格式 75 4.2.4 四精度浮点格式 76 4.3 规约形式与非规约形式 76 4.4 舍入 77 4.5 特殊的浮点值 79 4.6 浮点数异常 80 4.7 浮点运算 81 4.7.1 浮点表示形式 82 4.7.2 浮点数的加减法 82 4.7.3 浮点数的乘除法 93 4.8 更多信息 102 5 字符表示形式 103 5.1 字符数据 103 5.1.1 ASCII字符集 104 5.1.2 EBCDIC字符集 107 5.1.3 双字节字符集 108 5.1.4 Unicode字符集 109 5.1.5 Unicode码位 110 5.1.6 Unicode编码平面 111 5.1.7 代用码位 111 5.1.8 字形、字符和字素簇 112 5.1.9 Unicode规范和规范等价性 115 5.1.10 Unicode编码 116 5.1.11 Unicode组合字符 118 5.2 字符串 120 5.2.1 字符串格式 120 5.2.2 静态字符串、伪动态字符串和动态字符串 127 5.2.3 字符串的引用计数 129 5.2.4 Delphi字符串 130 5.2.5 自定义字符串格式 130 5.3 字符集数据类型 130 5.3.1 字符集的幂集表示形式 131 5.3.2 字符集的列表表示形式 132 5.4 设计自定义字符集 133 5.4.1 设计**的字符集 134 5.4.2 数字字符的编码分组 135 5.4.3 字母字符分组 135 5.4.4 比较字母字符 138 5.4.5 其他字符分组 140 5.5 更多信息 143 6 内存结构和访问 144 6.1 基本系统组件 144 6.1.1 系统总线 145 6.2 内存的物理结构 148 6.2.1 8位数据总线 151 6.2.2 16位数据总线 152 6.2.3 32位数据总线 155 6.2.4 64位数据总线 156 6.2.5 非80x86处理器对小单位内存的访问 156 6.3 大端序与小端序结构 157 6.4 系统时钟 163 6.4.1 内存访问和系统时钟 165 6.4.2 等待状态 166 6.4.3 缓存 168 6.5 CPU的内存访问模式 172 6.5.1 直接内存寻址模式 172 6.5.2 间接寻址模式 173 6.5.3 变址寻址模式 174 6.5.4 比例变址寻址模式 175 6.6 更多信息 175 7 复合数据类型与内存对象 176 7.1 指针类型 176 7.1.1 指针的实现 178 7.1.2 指针与动态内存分配 179 7.1.3 指针操作与指针运算 179 7.2 数组 184 7.2.1 数组声明 185 7.2.2 内存中的数组表示形式 188 7.2.3 访问数组元素 190 7.2.4 多维数组 190 7.3 记录/结构体 200 7.3.1 Pascal/Delphi记录 201 7.3.2 C/C 记录 202 7.3.3 HLA记录 203 7.3.4 Swift记录(元组) 203 7.3.5 记录的内存存储 204 7.4 判别联合 207 7.4.1 C/C 联合 208 7.4.2 Pascal/Delphi联合 208 7.4.3 Swift联合 209 7.4.4 HLA联合 211 7.4.5 联合的内存存储 211 7.4.6 联合的其他用途 213 7.5 类 214 7.5.1 继承 216 7.5.2 类构造函数 221 7.5.3 多态 224 7.5.4 抽象方法和抽象基类 225 7.6 C 类 229 7.6.1 C 中的抽象成员函数和类 230 7.6.2 C 的多重继承 231 7.7 Java类 233 7.8 Swift类 234 7.9 协议与接口 235 7.10 泛型和模板 239 7.11 更多信息 241 8 布尔逻辑与数字设计 242 8.1 布尔代数 243 8.1.1 布尔运算符 243 8.1.2 布尔假设 243 8.1.3 布尔运算符优先级 246 8.2 布尔函数与真值表 246 8.3 函数编号 248 8.4 布尔表达式的代数运算 250 8.5 规范形式 250 8.5.1 极小项和规范形式与真值表 252 8.5.2 使用代数方法得到极小项和规范形式 254 8.5.3 极大项积规范形式 255 8.6 布尔函数简化 256 8.7 这和计算机有什么关系 264 8.7.1 电路与布尔函数 265 8.7.2 组合电路 267 8.7.3 时序与时钟逻辑 274 8.8 更多信息 278 9 CPU 体系结构 280 9.1 CPU设计基础 280 9.2 指令的解码与执行:随机逻辑与微码 283 9.3 指令执行详解 284 9.3.1 mov指令 285 9.3.2 add指令 286 9.3.3 jnz指令 288 9.3.4 loop指令 289 9.4 RISC还是CISC:通过执行更多更快的指令来提高性能 290 9.5 提高处理速度的关键:并行 291 9.5.1 功能单元 294 9.5.2 预取队列 296 9.5.3 影响预取队列性能的情况 299 9.5.4 同时执行多条指令的流水线 299 9.5.5 指令缓存:提供多条内存访问通路 304 9.5.6 流水线冒险 306 9.5.7 超标量运算:并行执行指令 308 9.5.8 乱序执行 310 9.5.9 寄存器重命名 310 9.5.10 甚长指令字体系结构 312 9.5.11 并行处理 312 9.5.12 多处理 313 9.6 更多信息 315 10 指令集体系结构 316 10.1 指令集设计的重要性 317 10.2 指令设计的基本目标 318 10.2.1 操作码的长度选择 320 10.2.2 规划未来 322 10.2.3 选择指令 322 10.2.4 分配指令操作码 323 10.3 假想处理器Y86 324 10.3.1 Y86的限制 324 10.3.2 Y86指令 325 10.3.3 Y86的寻址模式 327 10.3.4 Y86指令编码 327 10.3.5 Y86指令编码示例 330 10.3.6 扩展Y86指令集 335 10.4 80x86 指令编码 336 10.4.1 指令操作码的编码 339 10.4.2 add指令编码的例子 346 10.4.3 x86的立即(常量)操作数编码 351 10.4.4 8位、16位和32位操作数的编码 352 10.4.5 64位操作数编码 353 10.4.6 指令的替代编码 353 10.5 指令集设计对程序员的意义 354 10.6 更多信息 354 11 内存体系结构与组织 355 11.1 内存层次结构 355 11.2 内存层次结构的工作原理 359 11.3 内存子系统的性能差距 360 11.4 缓存体系结构 362 11.4.1 直接映射缓存 364 11.4.2 全相联缓存 365 11.4.3 n路组相联缓存 365 11.4.4 缓存行置换策略 367 11.4.5 缓存写入策略 368 11.4.6 缓存使用与软件 369 11.5 NUMA与外设 370 11.6 虚拟内存、内存保护与分页 370 11.7 编写理解内存层次结构的软件 375 11.8 运行时的内存结构 376 11.8.1 静态对象与动态对象,绑定与生命期 378 11.8.2 代码段、只读数据段与常量段 379 11.8.3 静态变量段 380 11.8.4 存储变量段 380 11.8.5 栈 381 11.8.6 堆与动态内存分配 381 11.9 更多信息 388 12 输入与输出 389 12.1 连接CPU与外界 389 12.2 端口和系统连接的其他方式 393 12.3 输入/输出机制 394 12.3.1 内存映射输入/输出 395 12.3.2 I/O映射输入/输出 396 12.3.3 直接内存访问 396 12.4 输入/输出速度等级 397 12.5 系统总线与数据传输速率 398 12.5.1 PCI总线的性能 400 12.5.2 ISA总线的性能 401 12.5.3 AGP总线 401 12.6 缓冲 402 12.7 握手 403 12.8 I/O端口超时 404 12.9 中断与轮询式I/O 405 12.10 保护模式操作与设备驱动程序 406 12.10.1 设备驱动模型 407 12.10.2 与设备驱动程序通信 408 12.11 更多信息 409 13 计算机外设总线 410 13.1 小型计算机系统接口 410 13.1.1 限制 411 13.1.2 改进 412 13.1.3 SCSI协议 413 13.1.4 SCSI的优点 415 13.2 IDE/ATA接口 416 13.2.1 SATA接口 417 13.2.2 光纤通道 418 13.3 通用串行总线 418 13.3.1 USB设计 418 13.3.2 USB性能 420 13.3.3 USB传输的类型 421 13.3.4 USB-C 423 13.3.5 USB设备驱动程序 424 13.4 更多信息 425 14 大容量存储设备与文件系统 426 14.1 磁盘驱动器 426 14.1.1 软盘驱动器 427 14.1.2 硬盘驱动器 427 14.1.3 RAID系统 433 14.1.4 光驱 435 14.1.5 CD、DVD与蓝光驱动器 436 14.2 磁带驱动器 438 14.3 闪存 439 14.4 RAM盘 441 14.

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西�� 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外