当前位置: 首页 > news >正文

《深入理解计算机系统》阅读笔记之第二章 信息的表示和处理

1 概述

1.现代计算机存储和处理的信息以二值信号表示。
2.无符号(unsigned)编码基于传统的二进制表示法表示大于或者等于零的数字。
3.补码( two’ s-complement)编码是表示有符号整数的最常见的方式,有符号整数就是可以为正或者为负的数字。
4.浮点数(floatingpoint)编码是表示实数的科学记数法的以2为基数的版本。
5.计算机的表示法是用有限数量的位来对一个数字编码,因此,当结果太大以至不能表示时,某些运算就会溢出(overflow)。
6.

2 信息存储

1.大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位
2.机器级程序将内存视为一个非常大的字节数组,称为虚拟内存,内存的每个字节都由一个唯一的数字来标识,称为它的地址,所有可能地址的集合就称为虚拟地址空间(virtualaddressspace)
3.指针是C语言的一个重要特性。它提供了引用数据结构(包括数组)的元素的机制。与变量类似,指针也有两个方面:值和类型。它的值表示某个对象的位置,而它的类型表示那个位置上所存储对象的类型(比如整数或者浮点数)。

2.1 十六进制表示法

在这里插入图片描述
1.在C语言中,以0x或0X开头的数字常量被认为是十六进制的值。字符A-F可以大小写混用
在这里插入图片描述

2.2 字数据大小

1.每台计算机都有一个字长(wordsize),指明指针数据的标称大小(nominalsize)。
2.因为虚拟地址是以这样的一个字来编码的,所以字长决定的最重要的系统参数就是虚拟地址空间的最大大小。也就是说,对于一个字长为w位的机器而言,虚拟地址的范围为0~2"-1,程序最多访问2“个字节。
3. 32位字长限制虚拟地址空间为4千兆字节(写作4GB),也就是说,刚刚超过4X10的9次方字节。扩展到64位字长使得虚拟地址空间为16EB,大约是1. 84X10的19次方字节。大多数64位机器也可以运行为32位机器编译的程序,这是一种向后兼容。
在这里插入图片描述

2.3 寻址和字节顺序

1.排列表示一个对象的字节有两个通用的规则。考虑一个w位的整数,其位表示为[xw-1,xw-2,.,x1,xo],其中xw-1是最高有效位,而xo是最低有效位。假设w是8的倍数,这些位就能被分组成为字节,其中最高有效字节包含位[xw-1,xw-2,.,xw-8], 而最低有效字节包含位[xn,x6,.,xo],其他字节包含中间的位。某些机器选择在内存中按照从最低有效字节到最高有效字节的顺序存储对象,而另–些机器则按照从最高有效字节到最低有效字节的顺序存储。前一种规则最低有效字节在最前面的方式,称为小端法(little endian)。后一种规则一最高有 效字节在最前面的方式,称为大端法(big endian)。
在这里插入图片描述
2.大多数Intel 兼容机都只用小端模式。另一方面,IBM和Oracle(从其2010年收购Sun Microsystems开始)的大多数机器则是按大端模式操作。
3.对于大多数应用程序员来说,其机器所使用的字节顺序是完全不可见的。

2.4 表示字符串

1.C语言中字符串被编码为一个以null(其值为0)字符结尾的字符数组。每个字符都由某个标准编码来表示,最常见的是ASCII字符码。
2.计算机系统的一个基本概念就是,从机器的角度来看,程序仅仅只是字节序列。

2.5 布尔代数

在这里插入图片描述
在这里插入图片描述

2.6 C语言中的位级运算

在这里插入图片描述

2.7 C语言中的逻辑运算

在这里插入图片描述

2.8 C语言中的移位运算

在这里插入图片描述

3 整数表示

3.1 整型数据类型

在这里插入图片描述

3.2 无符号数的编码

备注:其实我觉得《编码》这本书对这方面的解释更好理解
在这里插入图片描述

3.3 补码编码

在这里插入图片描述

3.4 有符号数和无符号数之间的转换

在这里插入图片描述

4 小结

这一章的内容没有细看,但是感觉不如《编码》这本书写的更加让人容易理解。

相关文章:

  • Apipost免费版、企业版和私有化部署详解
  • 保安员证考试的理论知识有哪些重点?
  • 计算机基础 原码反码补码问题
  • 一篇速成Linux 设置位 S(SetUID)
  • kafka课后总结
  • 简述:变更调查的历史情况
  • 定时任务:Quartz
  • Windows同步技术-使用命名对象
  • MySQL引擎分类与选择、SQL更新底层实现、分库分表、读写分离、主从复制 - 面试实战
  • 明远智睿SD2351核心板:以48元撬动AI视觉产业革命的“硬核引擎”
  • 队列基础和例题
  • 保障海外业务发展,U-Mail邮件中继提供高效安全的解决方案
  • [Mybatis-plus]
  • 数据结构------C语言经典题目(6)
  • protothread协程库实现非阻塞延时(无操作系统)
  • LangChain 中主流的 RAG 实现方式
  • 第5.5章:ModelScope-Agent:支持多种API无缝集成的开源框架
  • Golang | 自行实现并发安全的Map
  • 运维打铁:Mysql 分区监控以及管理
  • 分享Matlab成功安装Support Package硬件支持包的方法
  • 国家能源局:支持民营企业参股投资核电项目
  • 第二十届中国电影华表奖揭晓!完整获奖名单来了
  • 银川市长信箱被指“已读乱回”,官方通报:对相关责任人问责处理
  • 上海市政府常务会议研究抓好稳就业稳企业稳市场稳预期工作,让企业感受温度
  • 甘肃张掖至重庆航线开通,串起西北与西南文旅“黄金走廊”
  • 一季度煤价持续下探,多家煤炭巨头营收下滑、净利润降约两成