信息存储

大多数计算机使用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);
} 

《深入理解计算机系统》读书笔记五:信息的表示和存储相关推荐

  1. 深入理解计算机系统读书笔记(第二章 信息的表示和处理)

    这里写自定义目录标题 第二章 信息的表示和处理 2.1 信息存储 2.1.1 十六进制表示法 2.1.2 字数据大小 2.1.3 寻址和字节顺序 2.1.4 表示字符串 2.1.5 代码表示 2.1. ...

  2. 深入理解计算机系统----读书笔记

    第二部分    信息的表示和处理 信息存储: 二进制(0101001), 八进制,十六进制(0x32FD) 字(word size)指明整数和指针数据的标称大小(normal size),对于w位的机 ...

  3. 深入理解计算机系统读书笔记

    由于这本书的前半部分习题大多是相关计算和简单汇编代码编写,所以当时都是在稿纸上练习的,不过现在那些稿纸似乎也不见了: ( 所以现在仅有后半部分的课后习题代码以及示例练习代码(家里作业习题当时并没有做, ...

  4. 深入理解计算机系统 第三章笔记,《深入理解计算机系统》笔记.PDF

    <深入理解计算机系统>笔记 <深入理解计算机系统>笔记 目錄 介紹 0 第1章计算机漫游 1 1.1信息就是位+上下文 1.1 1.2程序被其他程序翻译成不同的格式 1.2 1 ...

  5. 深入理解 Jvm 读书笔记(一)

    Jvm 内存管理,GC,类文件架构相关 知识包括: jvm内存管理 jvm运行时数据区划分 jvm层对象的创建过程 对象的内存布局 对象的访问定位 垃圾收集器与内存分配策略 对象已死的判定及引用分类 ...

  6. 《深入理解Java虚拟机》读书笔记五

    第六章 类文件结构 1.无关性的基石 各种不同平台的虚拟机与所有平台都统一使用程序存储格式--字节码是构成平台无关的基石. 实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Ja ...

  7. c语言语句的机器级表示实训,深入理解计算机系统(笔记):程序的机器级表示...

    分析高级语言编译后生成的汇编语言. 1. 程序编码 运行如下命令得到C语言的汇编代码: unix> gcc -O1 -S code.c gcc -c选项编译源文件生产目标文件code.o: un ...

  8. 【深入理解计算机系统-学习笔记】第一章 计算机系统漫游

    第一章 计算机系统漫游 简介: 我们通过跟踪hello程序的生命周期来开始对系统的学习--从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止 我们将沿着这个程序的生命周期,简单得介绍一些逐 ...

  9. MDX Step by Step 读书笔记(五) - Working with Expressions (MDX 表达式)

    1. 大多数表达式会返回数值类型的值,但是也能返回例如字符串,时间,布尔或者其它类型的值. 2. 一般表达式的结果都是几个值通过操作符运算后得到的,下列表格中显示了对比,逻辑的,数值的,字符串以及集合 ...

最新文章

  1. FPGA设计心得(13)aurora的线速率及其用户时钟之间的关系?
  2. 如何设置listview每个item高度
  3. 数据结构实验之二叉树五:层序遍历(STL和模拟队列两种方法)
  4. sqlite3 命令行简易教程
  5. centos 关闭防火墙
  6. 循序渐进学习Linux--第二天更新
  7. jdk中java_怎样使用JavaJDK中Java?
  8. Android adb 启动APP
  9. sqlserver不太常见的,可能常见但又疑问的tsql语句
  10. Linux的oracle账户解锁,如何解锁Oracle数据库中账号
  11. origin柱状图显示具体数据值
  12. 微信公众号开发之课堂考勤
  13. 初学Shader关于旗帜飘扬的一个简单shader的实现
  14. 简单的通过DockerFile 构建自己的nacos镜像 并持久化到 MySQL8.0
  15. CPU VS GPU
  16. 先验概率与后验概率是什么
  17. FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书启用FTPS 【转载】
  18. 手机APP开发之MIT Appinventor详细实战教程(九),工具箱的设计和MIT的基础知识讲解
  19. tlwdr5660间歇性掉线_tplink路由器频繁掉线的原因及解决办法
  20. 串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE

热门文章

  1. 写给计算机的大学生!
  2. Shell的一些基本用法
  3. 善用各类知识管理工具,达到事半功倍的效果
  4. 威金病毒、维金病毒、Viking、logo1_.exe专杀 vdll.dll、logo1_.exe、rundl132.exe、_desktop.ini、、0Sy.exe、图标变花...
  5. 常用的键盘按键(一些小技巧)
  6. ROS Gazebo(一):安装与使用
  7. 报表-对于多数据进行 分sheet以及 分workbook处理
  8. 3年,感谢你与几维安全一起经历的风风雨雨
  9. windows 安装
  10. [DONE]ReferenceError: WebSocket is not defined pomelo