《深入理解计算机系统》读书笔记五:信息的表示和存储
信息存储
大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。
每个十六进制数字都对16个值中的一个进行了编码。
字数据大小
字节顺序
最低有效字节在最前面的方式,称为小端法(little endian)。
最高有效字节在最前面的方式,称为大端法(big endian)。
计算机系统的一个基本概念就是: 从机器的角度看,程序仅仅是字节序列。机器没有关于原始程序的任何信息,除了可能有些用来帮助调试的辅助表之外。
位运算
&(与), |(或),~(取反)
逻辑运算
&&(与), ||(或), !(取反)
逻辑运算与位运算不是一个概念,两者的功能是不一样的。
逻辑运算认为所有非零的参数都是true ,而参数为0的表示false。同时逻辑运算有短路效应。
移位运算
向左或向右移动位模式
#include<stdio.h>typedef unsigned char * byte_pointer;void show_byte(byte_pointer start, size_t len){size_t i;for(i = 0; i < len; i++)printf(" %.2x", start[i]);printf("\n");
}void show_int(int x){show_byte((byte_pointer)&x, sizeof(int));
}void show_float(float x){show_byte((byte_pointer)&x, sizeof(float));
}void show_double(double x){show_byte((byte_pointer)&x, sizeof(double));
}void show_pointer(void *x){show_byte((byte_pointer)&x, sizeof(void *));
}int main(){int ival = 12345;float fval = (float)ival;int * pval = &ival;show_int(ival);show_float(12345.0);show_double(12345.0);show_pointer(pval);printf("%d, %x\n", sizeof(int *), &pval);printf("%d, %x\n", sizeof(int *), pval);
}
《深入理解计算机系统》读书笔记五:信息的表示和存储相关推荐
- 深入理解计算机系统读书笔记(第二章 信息的表示和处理)
这里写自定义目录标题 第二章 信息的表示和处理 2.1 信息存储 2.1.1 十六进制表示法 2.1.2 字数据大小 2.1.3 寻址和字节顺序 2.1.4 表示字符串 2.1.5 代码表示 2.1. ...
- 深入理解计算机系统----读书笔记
第二部分 信息的表示和处理 信息存储: 二进制(0101001), 八进制,十六进制(0x32FD) 字(word size)指明整数和指针数据的标称大小(normal size),对于w位的机 ...
- 深入理解计算机系统读书笔记
由于这本书的前半部分习题大多是相关计算和简单汇编代码编写,所以当时都是在稿纸上练习的,不过现在那些稿纸似乎也不见了: ( 所以现在仅有后半部分的课后习题代码以及示例练习代码(家里作业习题当时并没有做, ...
- 深入理解计算机系统 第三章笔记,《深入理解计算机系统》笔记.PDF
<深入理解计算机系统>笔记 <深入理解计算机系统>笔记 目錄 介紹 0 第1章计算机漫游 1 1.1信息就是位+上下文 1.1 1.2程序被其他程序翻译成不同的格式 1.2 1 ...
- 深入理解 Jvm 读书笔记(一)
Jvm 内存管理,GC,类文件架构相关 知识包括: jvm内存管理 jvm运行时数据区划分 jvm层对象的创建过程 对象的内存布局 对象的访问定位 垃圾收集器与内存分配策略 对象已死的判定及引用分类 ...
- 《深入理解Java虚拟机》读书笔记五
第六章 类文件结构 1.无关性的基石 各种不同平台的虚拟机与所有平台都统一使用程序存储格式--字节码是构成平台无关的基石. 实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Ja ...
- c语言语句的机器级表示实训,深入理解计算机系统(笔记):程序的机器级表示...
分析高级语言编译后生成的汇编语言. 1. 程序编码 运行如下命令得到C语言的汇编代码: unix> gcc -O1 -S code.c gcc -c选项编译源文件生产目标文件code.o: un ...
- 【深入理解计算机系统-学习笔记】第一章 计算机系统漫游
第一章 计算机系统漫游 简介: 我们通过跟踪hello程序的生命周期来开始对系统的学习--从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止 我们将沿着这个程序的生命周期,简单得介绍一些逐 ...
- MDX Step by Step 读书笔记(五) - Working with Expressions (MDX 表达式)
1. 大多数表达式会返回数值类型的值,但是也能返回例如字符串,时间,布尔或者其它类型的值. 2. 一般表达式的结果都是几个值通过操作符运算后得到的,下列表格中显示了对比,逻辑的,数值的,字符串以及集合 ...
最新文章
- FPGA设计心得(13)aurora的线速率及其用户时钟之间的关系?
- 如何设置listview每个item高度
- 数据结构实验之二叉树五:层序遍历(STL和模拟队列两种方法)
- sqlite3 命令行简易教程
- centos 关闭防火墙
- 循序渐进学习Linux--第二天更新
- jdk中java_怎样使用JavaJDK中Java?
- Android adb 启动APP
- sqlserver不太常见的,可能常见但又疑问的tsql语句
- Linux的oracle账户解锁,如何解锁Oracle数据库中账号
- origin柱状图显示具体数据值
- 微信公众号开发之课堂考勤
- 初学Shader关于旗帜飘扬的一个简单shader的实现
- 简单的通过DockerFile 构建自己的nacos镜像 并持久化到 MySQL8.0
- CPU VS GPU
- 先验概率与后验概率是什么
- FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书启用FTPS 【转载】
- 手机APP开发之MIT Appinventor详细实战教程(九),工具箱的设计和MIT的基础知识讲解
- tlwdr5660间歇性掉线_tplink路由器频繁掉线的原因及解决办法
- 串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE
热门文章
- 写给计算机的大学生!
- Shell的一些基本用法
- 善用各类知识管理工具,达到事半功倍的效果
- 威金病毒、维金病毒、Viking、logo1_.exe专杀 vdll.dll、logo1_.exe、rundl132.exe、_desktop.ini、、0Sy.exe、图标变花...
- 常用的键盘按键(一些小技巧)
- ROS Gazebo(一):安装与使用
- 报表-对于多数据进行 分sheet以及 分workbook处理
- 3年,感谢你与几维安全一起经历的风风雨雨
- windows 安装
- [DONE]ReferenceError: WebSocket is not defined pomelo