【CSAPP随笔】CH3:Bits, Bytes, and Integers

简介: 【CSAPP随笔】CH3:Bits, Bytes, and Integers

前言

《深入理解操作系统》个人用学习笔记。

 



0x00 Binary Representations - 二进制表示

位 —— 代表两种状态的单位,即0和1。

为什么不用10进制表示?

① 已与存储

② 用逻辑门紧凑地实现算术功能。

③ 抗干扰,可靠传输。

(电子实现:低电压-0,高电压-1)

0x01 Representing Information - 信息表示

信息=比特+上下文+表示方法

① 信息以比特形式写在存储器上。

② 上下文表示一组比特的数据类型。

③ 表征将赋予比特以意义。

N个比特可以代表多少信息?

2n个东西

如何代表不同类型的信息?

每种信息类型都有其数据表示。

字符、数字(整数和浮点数)、像素、机器指令

0x02 Encoding Byte Values

一个字节包括8位。

① 在二进制表示法中,它的值域是

② 换成十进制,它的值域就是

③ 用十六进制,一个字节的取值范围就是

十六进制(简写为Hex),使用数字 0~9 以及字符 A ~ F 来表示 16个可能的值。

在C中,以 0x 开头的数字常量被认为是十六进制的值。

A~F 既可以写成大写也可以是小写(甚至可以大小写混合)

比如 FA1D37B_16 可以在C语言中写作 0xFA1D37B、0xfa1d37b……

0x03  Example Data Representations - 数据表示的例子

0x04  Representations for Integers - 整数的表示

分为无符号整数表示和有符号整数表示。

0x05  Two’s Complement Encoding - 二进制补码

0x06  Signed Integer Representation

无符号数(unsigned),有符号数(signed)。

符号位:最高位0表示正数,最高位1表示负数。

有符号 char 的范围是: -128 ~ 127

无符号 char 的范围是: 0 ~ 255

0x07   Principle of using Complements as Negative Numbers

0x08  Two-complement Encoding Example (Cont.)

0x09  Numeric Ranges

0x0A  Values for Different Word Sizes

0x0B  Unsigned & Signed Numeric Values

等效性 - 非整数值的编码相同 - 唯一性 - 每个比特模式都代表唯一的整数值 - 每个可表示的整数都有唯一的比特编码 - ⇒可以反转映射 - U2B(x) = B2U-1(x) - 无符号整数的比特模式 - T2B(x) = B2T-1(x) - 整数中二的比特模式

0x0C  Conversion Visualized

0x0D  Sign Extension

例子:

从较小的整数数据类型转换到较大的整数数据类型

C自动进行符号扩展。

0x0E  Visualizing Unsigned Addition

0x0F  Visualizing 2’s Complement Addition - 二进制补码加法

0x10  Unsigned Multiplication in C - 无符号乘法

0x11  Signed Multiplication in C 0 有符号乘法

0x12  Boolean Algebra - 布尔代数

计算机是如何操作比特的?由乔治 - 布尔在19世纪开发

逻辑的代数表示 —— 将 "真 "编码为1,"假 "编码为0

0x13  General Boolean Algebras

Example: Representing & Manipulating Sets

0x14  Bit-Level Operations in C

0x15  Shift Operations

0x16  Adder

0x17  Implementation of Adder

0x18  4-bit integer adder

A computer encodes, stores, and manipulates information in bits.

Representing negative numbers as 2’s complements

Use the same logic hardware for unsigned and signed integers.

       If the true result is out of scope, the result is not valid.


参考资料

Computer Systems: A Programmer's Perspective (3rd Edition)

相关文章
|
C语言
【CSAPP随笔】CH3 - 浮点 | IEEE754规定 | Float
【CSAPP随笔】CH3 - 浮点 | IEEE754规定 | Float
91 0
|
存储 缓存 Shell
【CSAPP随笔】CH2:A Tour of Computer Systems | 计算机系统漫游
【CSAPP随笔】CH2:A Tour of Computer Systems | 计算机系统漫游
77 0
|
1月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
1月前
|
存储 分布式计算 数据库
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
|
2月前
|
存储 SQL 缓存
数据库测试|Elasticsearch和ClickHouse的对决
由于目前市场上主流的数据库有许多,这次我们选择其中一个比较典型的Elasticsearch来和ClickHouse做一次实战测试,让大家更直观地看到真实的比对数据,从而对这两个数据库有更深入的了解,也就能理解为什么我们会选择ClickHouse。
数据库测试|Elasticsearch和ClickHouse的对决
|
1月前
|
存储 关系型数据库 MySQL
四种数据库对比MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
四种数据库对比 MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
|
5月前
|
DataWorks API 调度
DataWorks产品使用合集之在调度配置配置了节点的上游节点输出,没办法自动生成这个flow的依赖,该怎么操作
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之建了 polar 与clickhouse的数据源。为什么数据库这里总是mysql呢
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
存储 大数据 关系型数据库
从 ClickHouse 到阿里云数据库 SelectDB 内核 Apache Doris:快成物流的数智化货运应用实践
目前已经部署在 2 套生产集群,存储数据总量达百亿规模,覆盖实时数仓、BI 多维分析、用户画像、货运轨迹信息系统等业务场景。
|
5月前
|
存储 SQL 运维
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
OLAP数据库选型指南:Doris与ClickHouse的深入对比与分析
下一篇
无影云桌面