《深入理解计算机系统》 第三版

第二遍读这本书,每周花两到三小时时间,能读多少读多少(这次看了 29 ~ 34 页)

第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/9866674.html

对于跨越多字节的程序对象,有两个规则必须建立

1、这个对象的地址是多少?

一般使用所有字节中最小的地址作为对象的地址

2、这个对象的内容在内存中如何排列?

有两种排列方法

(1)大端法

最高有效为放在前面

(2)小端法

最低有效位放在前面

Android 和 IOS 两个操作系统,都只支持小端法

对于操作系统和处理器有点混淆,把常见的操作系统和处理器查了一下:

操作系统
  电脑:Windows、Linux
  手机:IOS、Android
处理器
  电脑:Intel、AMD
  手机:骁龙(小米)、麒麟(华为)

对于应用程序员来说,由于机器所使用的字节顺序是完全不可见的,无论为哪种类型的机器所编译的程序都会得到同样的结果

但是,在以下三个方面,字节顺序可能会引发一定的问题:

1、在不同机器之间传送二进制数据时,如果小端法机器产生的数据被发送到大端法机器或者反过来时,接收程序会接收到反序的字节

2、当阅读表示整数的字节序列时,字节序列也很重要,这通常发生在检查机器级程序时

3、当编写规避正常的类型系统的程序时,字节顺序很重要

c 语言的 sizeof 函数,返回一个对象或者类型所占的内存字节数

函数详情可参考:

https://blog.csdn.net/wzy198852/article/details/7246836

# 疑问

1、类型系统是什么?

2、什么时候需要对象的字节表示?把源程序编译成汇编代码时,在汇编语言中需要吗?

3、指针、类型、*、& 有点懵

4、表示字符串和代码方面,引出的关于 ASCII 码和二进制的兼容性不太懂

深入理解计算机系统 第二章 信息的表示和处理 Part2 第二遍的更多相关文章

  1. 深入理解计算机系统 第二章 信息的表示和处理 Part1 第二遍

    <深入理解计算机系统> 第三版 第二遍读这本书,每周花两到三小时时间,能读多少读多少(这次看了 22 ~ 28 页) 第一遍对应笔记链接 https://www.cnblogs.com/s ...

  2. 深入理解计算机系统 第二章 信息的表示和处理 part2

      上一周遗留问题的解决 问题:原码.反码.补码是只针对有符号数吗?无符号数有没有这三种编码方式? 得到的答案:对于无符号数,原码.反码和补码是一致的 进一步,由于有符号数是以补码的形式存储在计算机中 ...

  3. 深入理解计算机系统 第二章 信息的表示和处理 part1

    欣哥划的重点: 第二章比较难,建议至少掌握下面几个知识点: 1. 字节顺序 : 大端和小端 2. 运行 图2-24, 图2-25程序 show-bytes.c 观察结果,看看有什么问题 3. 理解布尔 ...

  4. 深入理解计算机系统 第九章 虚拟内存 Part1 第二遍

    这次花了4小时40分钟,看了第 559~575 页,共 17 页 第一遍对应地址 https://www.cnblogs.com/stone94/p/10264044.html 注意:本章的练习题一定 ...

  5. 深入理解计算机系统 第三章 程序的机器级表示 Part2 第二遍

    第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/9943779.html 本章汇编代码中常出现的几个指令及其含义 1.push 操作数的个数:1 将操作数(一般 ...

  6. [CSAPP笔记][第二章信息的表示和处理]

    信息的表示和处理 2.1 信息存储 机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器. 存储器的每个字节由一个唯一的数字表示,称为它的地址 所有可能地址的集合称为虚拟地址空间 2.1.1 十 ...

  7. 深入理解计算机系统 Start && 第一章要点

    对此书已经慕名已久了,抽空看了第1,2,3,5章,其他章节等有空闲继续看吧. 我的许多博客是给自己快速复习使用的,比如此读书后感,你可以根据我下面的建议读完原书几章再回来复习一下(或许那时候就没必要回 ...

  8. 《深入理解计算机系统V2》学习指导

    <深入理解计算机系统V2>学习指导 目录 图书简况 学习指导 第一章 计算机系统漫游 第二章 信息的表示和处理 第三章 程序的机器级表示 第四章 处理器体系结构 第五章 优化程序性能 第六 ...

  9. 《深入理解计算机系统》实验一 —Data Lab

    本文是CSAPP第二章的配套实验,通过使用有限的运算符来实现正数,负数,浮点数的位级表示.通过完成这13个函数,可以使我们更好的理解计算机中数据的编码方式. 准备工作   首先去官网Lab Assig ...

随机推荐

  1. [NOIp2012] luogu P1083 借教室

    该*的英语,这么长还要背. 题目描述 你有 nnn 个数 ai{a_i}ai​,mmm 次操作,每次操作将 [l,r][l,r][l,r] 区间的每个数减去 ccc.要求任何时刻 ∀x∈[1,n]\f ...

  2. cinatra::http框架编译使用

    cinatra 一个高效易用的c++ http框架 1.下载源码 https://github.com/qicosmos/cinatra 2. vs2017 编译boost库 [msvc-14.1] ...

  3. 04jmeter-Concurrency Thread Group

    1.下载插件Custom Thread Groups:参照:00jmeter安装相关 2.添加并发线程组 场景举例: 10个线程2分钟的加速时间5个加速步骤持有目标速率2分钟: 即: 2分钟除以5步, ...

  4. 使用 Helm Chart 部署及卸载 istio

    部署 istio 1.添加 istio 官方的 helm 仓库 helm repo add istio https://storage.googleapis.com/istio-release/rel ...

  5. Azure EventHub快速入门和使用心得

    Azure Event Hubs(事件中心)是一个大数据流式数据摄取服务平台,每秒接受数百万事件; EventHubs 是一个有数据保留期限的缓冲区,类似分布式日志:可缩放的关键在于[分区消费模型], ...

  6. 百万年薪python之路 -- 模块

    1.自定义模块 1.1.1 模块是什么? 模块就是文件,存放一堆常用的函数和变量的程序文件(.py)文件 1.1.2 为什么要使用模块? 1.避免写重复代码,从文件级别组织程序,更方便管理 2.可以多 ...

  7. 实用Linux控制台命令

    实用Linux控制台命令 screen 例如用Xshell连接 服务器 screen -ls 列出当前用户所有的screen screen 回车直接创建新的screen screen -S scree ...

  8. Java基础(一)对象构造

    由于Java对象构造非常重要,所以Java提供了多种编写构造器的机制. 1.重载 如果多个方法有相同的名字.不同的参数,便产生了重载.编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与 ...

  9. CSS盒模型以及如何解决边距重叠问题

    盒模型有两种,W3C 和IE 盒子模型 W3C定义的盒模型包括margin.border.padding.content,元素的宽度width=content的宽度 IE盒模型与W3C盒模型的唯一区别 ...

  10. SpirngCloud之Ribbon负载均衡(二)

    一 概念 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具. 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负 ...