一.计算机系统之信息的表示和处理

  1. ==信息存储==
  • 本节介绍了高级语言(主要是C语言)的数据大小在机器存储中是怎样表示的,以及高级语言提供的计算符号.
  • 1.1:字节(byte):8位的块,做为最小的存储器单位。例如:机器级程序将存储器视为一个很是大的字节数组(虚拟存储器),每个字节都有惟一的数字来标识(这一部分直接作在硬件及驱动上,而后系统直接使用).程序员

    • eg指针:不管其指向的是一个整数、一个结构或是讴歌其余程序对象,都是某个存储块的第一个字节的虚拟地址。
  • 1.2::每台计算机都有一个字长(word size),指明整数和指针数据的标称大小。虚拟地址是以一个字来编码的,因此字长(字的长度)能决定系统参数(虚拟地址)的最大大小。eg:字是CPU进行一次并行处理的二进制位数,为8的倍数。以32位机为例,它的字长是2^32位长度,一次能够处理4个字节的数据(也即一个整数和指针数据为4个字节)数组

  • 1.3 数据大小:上面说了在逻辑层机器层的数据最小单位。下面展现下C语言中的数据层单位编码

数据类型 字节(32位) 几个字(32位) 计算机操做的次数(32位) 字节(64位) 几个字(64位) 计算机操做的次数(64位)
char 1 1/4 4个/次 1 1/8 8个/次
short int 2 1/2 2个/次 2 1/4 4个/次
int 4 1 1个/次 4 1/2 2个/次
long int 4 1 1个/次 8 1 1个/次
long long int 8 2 0.5个/次 8 1 1个/次
char * 4 1 1个/次 8 1 1个/次
float 4 1 1个/次 4 1/2 2个/次
double 8 1/2 0.5个/次 8 1 1个/次
  • 1.4:寻址和字节顺序:一个数据的内存存放位置,是先存放其最高位仍是最低位
大端法:从最低有效字节到最高有效字节的顺序存储对象.--intel
小端法:从最高有效字节到最低有效字节的顺序存储对象.--IBM/Sun Microsystems
  • 例如: int x 的十六进制值为:0x01234567。大端方:01:0x100;
大端方 01 23 45 67
虚拟即地址 0x100 0x101 0x102 0x103
小端方 67 45 23 01
虚拟即地址 0x103 0x102 0x101 0x100
  • 1.5 字符串:C语言中的字符串被编码为以null(其值为0) 字符结尾的字符数组。其中每一个字符都是由讴歌标准编码表示,最多见的是ASCII字符码。设计

  • 1.6 布尔代数简介:二进制值是计算机编码、存储和操做信息的核心,因此围绕0和1的研究已经演化成了丰富的数学知识体系。这起源于1850年先后的乔治.布尔的工做,所以也成为布尔代数。被注意到将逻辑值TRUE(真)和FALSE(假)编码为二进制值-和1,能设计出一种代数,以研究逻辑推理的基本原则.指针

  • 1.7 C语言中的位级运算: C语言的一个颇有用的特性是它支持按位布尔运算.或(OR):| 、与(AND):& 、取反(NOT):~ 、异或(exclusive-or):^ .位级运算的一个常见用法是实现掩码运算.code

  • 1.8 C语言中的逻辑运算:C语言提供了一组运算符||、&&和!对象

  • 1.9 C语言中的移位运算:C语言提供了一组移位预算,一边向左(<<)或者向右(>>)移动位模式.内存

  1. ==整数表示==
  • 本节详细介绍一下整型数据类型在机器中的各类表示、运算的表示方式。若是不是作驱动级别能够不予理会
  • 2.1 整形数据类型
  • 2.2 无符号数的编码
  • 2.3 补码编码
  • 2.4 无符号数和有符号数之间的转换
  • 2.5 C语言中的有符号数和无符号数
  • 2.6 扩展一个数字的位表示
  • 2.6 截断数字
  • 2.6 关于有符号数与无符号数的建议
  1. ==整数运算==
  • 计算机运算的有限性会形成奇怪的现象,例如两个正数相加会得出一个负数,理解计算机运算的细微之处可以帮助程序员编写更急可靠的代码
  • 3.1 无符号加法
  • 3.2 补码加法
  • 3.3 补码的非
  • 3.4 无符号乘法
  • 3.5 补码乘法
  • 3.6 除以2的幂
  • 3.7 关于整数运算的最后思考
  1. 浮点数
  • 本节讨论在IEEEE浮点格式中是如何表示数组。讨论加法、乘法和关系运算符的数学属性。
  • 4.1 二进制小数
  • 4.2 IEEE浮点表示
  • 4.3 舍入
  • 4.4 浮点计算
  • 4.5 C语言中的浮点数
相关文章
相关标签/搜索