信息的二进制编码:

机器级数据分两大类 – 数值数据:无符号整数、带符号整数、浮点数(实数) – 非数值数据:逻辑数(包括位串)、西文字符和汉字 • 计算机内部所有信息都用二进制(即:0和1)进行编码 • 用二进制编码的原因 – 制造二个稳定态的物理器件容易(电位高/低,脉冲有/无,正/负极) – 二进制编码、计数、运算规则简单 – 正好与逻辑命题真/假对应,便于逻辑运算 – 可方便地用逻辑电路实现算术运算 • 真值和机器数( 非常重要的概念!) – 机器数:用0和1编码的计算机内部的0/1序列 – 真值:真正的值,即:现实中带正负号的数 例:unsigned short型变量x的真值是127,其机器数是多少? 127=27-1,其机器数为0000 0000 0111 1111

数值数据的表示

• 数值数据表示的三要素 – 进位计数制 – 定、浮点表示 – 如何用二进制编码 即:要确定一个数值数据的值必须先确定这三个要素。 例如,20137564的值是多少? • 进位计数制 – 十进制、二进制、十六进制、八进制数及其相互转换 • 定/浮点表示(解决小数点问题) – 定点整数、定点小数 – 浮点数(可用一个定点小数和一个定点整数来表示) • 定点数的编码(解决正负号问题) – 原码、补码、反码、移码(反码很少用)

R进位计数制

日常生活中用十进制表示数值,计算机中用二进制表示所有信息!那为什么还要引入八进制/ 十六进制呢? 八进制/ 十六进制是二进制的简便表示。便于阅读和书写! 它们之间对应简单,转换容易。 在机器内部用二进制表示,在屏幕或其他设备上表示时,转换为八进制/十六进制数,可缩短长度。 八进制:Octal (用后缀“O”表示) 十六进制:Hexadecimal (用后缀“H”,或前缀“0x”表示) 后缀“B”表示二进制数,如01011010B 例:1010 1100 0100 0101 0001 0000 1000 1101B可写成 0xac45108d 0xAC45108D 或ac45108dH AC45108DH 或8进制:25421210215O 010 101 100 010 001 010 001 000 010 001 101 现代计算机系统多用十六进制表示机器数

十进制数与R进制数之间的转换

(1) R进制数=> 十进制数 按“权”展开 例1: (10101.01)2=1x24+1x 22+1x20+1x2-2=(21.25)10 例2: (307.6)8=3x82+7x80+6x8-1=(199.75)10 例1: (3A. 1)16=3x161+10x160+1x16-1=(58.0625)10 (2)十进制数=> 二进制数,再将二进制转换为16或8进制 整数部分和小数部分分别转换 ① 整数—-“除基取余,上右下左” ② 小数—-“乘基取整,上左下右” 上面这只是理论上的做法 实际上,记住1、2、4、8、16、32、64、128、256、512、1024、2048、4096、8192、16384、32768、65536,…..就可简单进行整数部分的转换记住0.5、0.25、0.125、0.0625、…… 就可简单进行小数部分的转换 十进制数与二进制数之间的转换: [

](http://www.wjgbaby.com/wp-content/uploads/2018/05/18050301-300x206.png)](http://www.wjgbaby.com/wp-content/uploads/2018/05/18050301.png) **十进制数与8进制数之间的转换:** [![](http://www.wjgbaby.com/wp-content/uploads/2018/05/18050302-300x216.png)
](http://www.wjgbaby.com/wp-content/uploads/2018/05/18050301-300x206.png)](http://www.wjgbaby.com/wp-content/uploads/2018/05/18050301.png) **十进制数与8进制数之间的转换:** [![](http://www.wjgbaby.com/wp-content/uploads/2018/05/18050302-300x216.png)

定点数和浮点数

• 计算机中只有0和1,数值数据中的小数点怎么表示呢? – 计算机中只能通过约定小数点的位置来表示 • 小数点位置约定在固定位置的数称为定点数 • 小数点位置约定为可浮动的数称为浮点数 • 定点小数用来表示浮点数的尾数部分 • 定点整数用来表示整数,分带符号整数和无符号整数 • 任何实数:X=(-1)s ×M×RE 其中,S取值为0或1,用来决定数X的符号;M是一个二进制定点小数**,称为数X的尾数(mantissa);E是一个二进制定点整数,称为数X的阶或指数(exponent);R是基数(radix、base),可以为2、4和16等。计算机中只要表示S、M和E三个信息,就能确定X的值,这**称为浮点数

视频链接:

计算机系统基础(一):程序的表示,转换与链接

计算机系统基础(二):程序的执行和存储访问

计算机系统基础(三):异常、中断和输入/输出