《深入理解计算机系统》(第三版)第二章部分知识点总结

信息的表示和处理

      本渣渣要进行CSAPP期中考了,但是上半学期啥也没听QWQ,只能临阵磨枪了

*学习要点*

1、计算机如何表示数字

2、其他形式数据的基本属性

*信息存储*

字节:最小的可寻址的内存单位

地址:内存中每个字节都由一个唯一的数字来标识

虚拟地址空间:所有可能地址的集合

字长:指明指针数据的标称大小(对于一个字长为w的机器而言,虚拟地址的范围为0~pow(2,w)-1,程序最多访问pow(2,w)个字节)

C语言数据类型对应字节数(32位/64位)

char/unsigned char         1/1

short/unsigned short       2/2

int/unsigned                   4/4

long/unsined long          4/8

int32_t/uint32_t              4/4

int64_t/uint64_t              8/8

char*                              4/8

float                               4/4

double                            8/8

排列表示一个对象的字节有两种方式:

  1. 小端法(最低有效字节在前面)
  2. 大端法

表示字符串:

C语言中字符串被编码为一个以NULL字符结尾的字符数组。某个字符都由某个编码标准来表示,最常见的是ASCII字符码。

布尔代数简介

二进制值是计算机编码、储存和操作信息的核心

&     与

|       或

~     非

^     异或

C语言支持按位进行布尔运算

掩码运算:

掩码:一个位模式,表示从一个字中选出的位的集合(掩码是一串二进制代码对目标字符串进行按位与运算,屏蔽当前的输入位

掩码0xFF表示一个字的低位字节(eg :  x&0xFF生成一个由x的最低有效字节组成的值

~0生成一个全为1的掩码

C语言中逻辑运算:

所有非零参数都为TRUE,参数零表示FALSE

1表示TRUE,0表示FALSE

C语言中移位运算:

左移:x<<k表示x向左移动k位,丢弃最高的k位,并在右端补k个0

右移:x>>k

  1. 逻辑右移:在左端补k个0
  2. 算数右移:在左端补k个最高有效位的值

几乎所有的计算机/编译器都对有符号数使用算数右移,同时,对于无符号数,逻辑右移是必须的

*无符号数编码的定义

*补码编码的定义

有符号和无符号之间的类型转换

对于大多数C语言的实现,处理同样字长的有符号数和无符号数之间相互转换的一般规则是:数值可能会改变,但是位模式不变

U2Bw(x):在0<=x<=UMAXw时,给出x的唯一的w位无符号表示

T2Bw(x) :在TMINw<=x<=TMAXw时,给出x的唯一的w位无符号表示

补码转化为无符号数

对满足TMINw<=x<=TMAXw的x有:

                            T2Uw(x) = x+pow(2,w),     x<0

                                            x,                               x>=0

无符号数转化为补码:

对满足0<=u<=UMAXw的u有:

                           U2Tw(u) = u,                              u<=TMAXw

                                            u-pow(2,w),               u>TMAXw

扩展一个数字的位表示

零扩展:将一个无符号数转换为一个更大的数据类型时在前面添0

符号扩展:添加最高有效位的值1


(剩下的符号太多了,不打了。。。。。。。。)


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值