《深入理解计算机系统》读书札记(第二章)

本文探讨了计算机如何使用二进制、无符号编码、补码编码和浮点数编码来存储和处理信息。介绍了字节、地址空间、十六进制表示法、字数据大小、字节顺序、字符串和代码的编码规则。重点讨论了布尔代数在位级运算中的应用,以及C语言中的位级、逻辑和移位运算。此外,还涵盖了整数的表示方法,包括无符号数和补码编码,并提到了整数运算和浮点数的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《深入理解计算机系统》读书札记(第二章)

原书网盘链接地址:https://pan.baidu.com/s/1kF1Q9TloZzzgXewv7atWBw
提取码:gtt1

第二章 信息的表示和处理

现代计算机存储和处理的信息以二值信号表示(二进制,bit)

三种重要的数字表示,计算机通过使用这些不同的表示方法实现算数运算。

  • 无符号(unsigned)编码基于传统的二进制表示法,表示大于或者等于零的数字
  • 补码(two’s-complement)编码是表示有符号整数(为正或者为负的数字)
  • 浮点数(floating-point)编码是表示实数的科学计数法的以2为基数的版本。

2.1 信息存储

大多数计算机以字节(byte)作为最小的可寻址的内存单位。
机器级程序将内存视为一个非常大的数组,称为虚拟内存(virtual memory)。内存的每个字节都由一个唯一的数字来标识,称为地址(address),所有的可能地址的集合称为虚拟地址空间(virtual address space )

2.1.1 十六进制表示法

十六进制(hexadecimal)使用数字0-9以及字符A-F来表示16个可能的值。
在这里插入图片描述
在C语言中,常以0x或者0X开头的数字常量表示十六进制的值。

2.1.2 字数据大小

每台计算机都有一个字长(word size),指明指针数据的标称大小(nominal size)。因为虚拟地址是以这样的一个字来编码的,所以字长决定的最重要的系统参数就是虚拟地址空间的大小。

2.1.3 寻址和字节顺序

在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中最小的地址

排列表示一个对象的字节有两个通用的规则:

  • 小端法(little endian):内存中按照从最低有效字节到最高有效字节的顺序存储对象;
  • 大端法(big endian):内存中按照从最高有效字节到最低有效字节的顺序存储对象;

2.1.4 表示字符串

C语言字符串被编码为一个以null(其值为0)字符结尾的字符数组。
ASCII字符集适合于编码英语文档,JAVA编程语言使用Unicode来表示字符串。

2.1.5 表示代码

即使完全一样的进程,运行在不同的操作系统上也会有不同的编码规则,因此二进制代码是不兼容的。二进制代码很少能在不同机器和操作系统之间移植。

2.1.6 布尔代数简介(位级运算)

布尔代数:1850年前后,乔治布尔注意到通过将逻辑值TRUE(真)和FALSE(假)编码为二进制值1和0,能够设计出一种代数,以研究逻辑推理的基本原则。
在这里插入图片描述

  • (OR |)当P或者Q都为真时,则最终结果为真,当P=1或者Q=1时,P|Q=1;
  • (AND &)当P和Q都为真时,则最终结果为真,当P=1且Q=1时,P&Q=1;
  • (NOT !) 当P不是true,非true是真,当P等于0时,非P等于1,反之亦然;
  • 异或(^)当P或者Q为真但不同时为真,P ^Q为真,当P=1且Q=0时,或者P=0且Q=1时,P ^Q=1;

我们可以将上述4个布尔运算拓展到位向量的运算。

2.1.7 C语言中的位级运算

位运算

2.1.8 C语言中的逻辑运算

逻辑运算符|| && ! 分别对应 OR ,AND NOT ,逻辑运算和位运算是不同的概念,逻辑运算认为非0的参数都表示TRUE,而参数0表示FALSE。逻辑运算符并且具有短路机制

2.1.9 C语言中的移位运算

移位运算符

2.2 整数表示

2.2.1 整型数据类型

2.2.2 无符号数的编码

2.2.3 补码编码

原码、反码、补码知识详细讲解(此作者是我找到的讲的最细最明白的一个)

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

2.2.5 C语言中的有符号数和无符号数

2.2.6 拓展一个数字的位表示

2.2.7 截断数字

2.2.8 关于有符号数和无符号数的建议

2.3 整数运算

2.4 浮点数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值