欢迎来到天天文库
浏览记录
ID:38979298
大小:50.00 KB
页数:5页
时间:2019-06-22
《C语言之计算机基础学习资料二》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言之计算机基础学习资料二机器数与真值一、机器数及其编码机器数就是数值在计算机中的表示形式,真值则是它在现实中的实际数值。可以这样简单的理解。因为计算机只能直接识别和处理用0、1两种状态的二进制形式的数据,所以在计算机中无法按人们的日常书写习惯用正、负符号加绝对值来表示数值,而与数字一样采用二进制代码0和1来表示正、负号。这样在计算机中表示带符号的数值数据时,符号和数均采用了0、1进行了代码化。这种采用二进制表示形式,连同正负符号一起代码化的数据,称为机器数或者机器码(即,数值在计算机中的二进制
2、表示形式)。与机器数对应,用正、负符号加绝对值来表示的实际数值称为真值。根据约定机器数是否存在符号位,机器数可以分为无符号数和带符号数。无符号数是指计算机字长的所有二进制位均表示数值。带符号数是指机器数分为符号位和数值两部分,且均采用二进制表示。一般约定最高位表示符号。例1-1:10011001作为无符号定点整数时,真值是153;作为带符号定点整数时,第一位是符号位,1代表负号,二进制数10011001的真值是-0011001,转化成十进制是-25。对于带符号数,根据小数点位置固定与否,又可以分为
3、定点数和浮点数。在介绍浮点数之前我们要将注意力完全放在定点数上面,要有点耐心,对定点数的理解程度决定了我们对浮点数的理解程度,因为可以将浮点数看成是对定点数的一种应用,以后就会明白了。好了,先看一看什么是定点数。定点数约定所有数据的小数点位置均是相同且固定不变的。计算机中通常使用的定点数有定点小数和定点整数两类。定点小数:对于一个长度为n位的机器数,定点小数约定小数点在符号位和最高数值位之间,如下数符(最高位,占用1位). 尾数(剩余n-1位)小数点只是一个约定,是隐含的,不占用空间。定点整数:对
4、于一个长度为n位的机器数,定点整数约定小数点在最低数值位之后,如下数符(最高位,占用1位)尾数(剩余n-1位).小数点也是隐含的。例1-2:下的八位二进制数,我们看看它们所代表的值是多少定点小数:1.1011001 真值=-0.1011001=-0.6953125定点整数:11011001 真值=-1011001=-89真值:127=+1111111 定点整数:01111111真值:-0.125=-0.001 定点小数:1.00100001、机器数与真值
5、机器只认识二进制数:0、1。这是因为,电路状态常有两个,如通、断;高电平、低电平;…可用0、1表示。这种0、1、0、1…1在机器中的表现形式——机器数。一般为8位。无符号数:00000000B、……11111111B即00H~FFH机器数有:带符号数:+1010110B、-1101001真值01010110、11101001机器数1、机器数的编码及运算对带符号数而言,有原码、反码、补码之分,计算机内一般使用补码。1)原码将数“数码化”,原数前“+”用0表示,原数前“-”用1表示,数值部分为该数本身
6、,这样的机器数叫原码。设X——原数;则[X]原=X(X0)[X]原=2n-1–X(X0),n为字长的位数。如,[+3]原=00000011B[-3]原=27-(-3)=10000011B0有两种表示方法:00000000+010000000-0原码最大、最小的表示:+127、-1272)反码规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。[X]反=X(X0)[X]反=(2n–1)+X(X0)如,[+4]反=[+4]原=00000100B[-4]反=(28–1)+(-4)=1111111
7、1-00000101=11111010B反码范围:-127~+127两个0;+0——00000000B-0——11111111B3)补码补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。运用补码可使减法变成加法。规定:正数的补码等于原码。负数的补码求法:1)反码+12)公式:[X]补=2n+X(X<0)如,设X=-0101110B,则[X]原=10101110B则[X]补=[X]反+1=11010001+000000
8、01=11010010B如,[+6]补=[+6]原=00000110B[-6]补=28+(-6)=10000000–00000110=11111010B8位补码的范围–128~+127。0的个数:只一个,即00000000而10000000B是-128的补码。原码、反码、补码对照表:表1-2P104)补码的运算当X≥0时,[X]补=[X]反=[X]原[[X]补]补=[X]原[X]补+[Y]补=[X+Y]补[X-Y]补=[X+(-Y)]补例:已知X=52Y=38求X-Y方法1:减法:
此文档下载收益归作者所有