用计算机表示数,第四课:计算机中数的表示及运算

数字:

谈到数字,有很多同学可能会觉的很可笑,数字?不就是1234……..这些吗?是的,在日常的生活当中,我们用的一般都是十进制,但在计算机中,它只能识别二进制数,所以在这里我还得跟大家共同分析一下:

1、十进制:

十进制就是基数为“十”,所使用的数码为0~9共10个数字。逢十进一。是我们每天都会运用到的,在这里就不多谈了。

2、二进制:

二进制的基数为“二”,其使用的数码只有0和1两个。在计算机中容易实现,在常用的的实现方式中如:可以用电路的高电平表示1,低电平表示0;或者三极管截止时集电极的输出表示1,导通时集电极输出表示0。

3、十六进制:

由于二进制位数太长,不易记忆和收写,所以人们又提出了十六进制的书写形式。我们在汇编语言中多数用十六进制。

二进制,十进制,十六进制数码对照

十进制

8421BCD码

二进制

十进制

8421BCD码

二进制

1

1

0001

10

A

1010

3

3

0011

12

C

1100

5

5

0101

14

E

1110

7

7

0111

16

10

10000

计算机只识别和处理数字信息,数字是以二进制数表示的;它易于物理实现,同时,资料存储、传送和处理简单可靠;运算规则简单,使逻辑电路的设计、分析、综合、方便,使计算器具有逻辑性。

一、 用数制及转换

1、各种进位计数及其表示方法

数字符号:0、1、2、……9 ——数码。数码的个数——基数。

进位规则:逢十进一

例如,十进制数,10个数码;采用“逢十进一”

30681 = 3×104+0×103+6×102+8×101+1×100

例如,二进制数,2个数码,采用“逢二进一”

(11010100)2 = 1×27+1×26+0×25+1×24+0×23+1×22+0×21+0×20

总之,N进制数,N个数码,“逢N进一”

2、数制之间的转换

任意进制之间相互转换,整数部分和小数部分必须分别进行,

十进制转换成二进制——短除取余法

43e81da26ab95e2a4d20d33dc26ae80f.gif

十进制小数转换成二进制小数——乘2取整法。

二进制转换成十进制——展开求和法。

(101101)2 = 1×25+0×24+1×23+1×22+0×21+1×20

= 32+0+8+4+0+1

= 45

二进制转换成八进制、十六进制与此类似。

二、 机器数及其编码

1、 机器数与真值机器只认识二进制数:0、1。

这是因为,电路状态常有两个,如通、断;高电平、低电平;…可用0、1表示。

这种0、1、0、1…1在机器中的表现形式——机器数。一般为8位。

e606e1767c9e525b3268cfc2fb38333a.gif

2、 机器数的编码及运算

对带符号数而言,有原码、反码、补码之分,计算机内一般使用补码。

1) 原码

将数“数码化”,原数前“+”用0表示,原数前“-”用1表示,数值部分为该数本身,这样的机器数叫原码。

设X——原数;则[X]原 = X(X 0)

[X]原 = 2n-1 – X (X 0),n为字长的位数。

如,[+3]原 = 00000011B

[-3]原 = 27 - (-3) = 10000011B

0有两种表示方法:00000000 +0

10000000 -0

原码最大、最小的表示:+127、-128

2) 反码

规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。

[X]反 = X (X 0)

[X]反 =(2n –1)+ X (X 0)

如,[+4]反 = [+4]原 = 00000100 B

[-4]反 = (28 –1)+(-5) = 11111111- 00000101 = 11111010 B

反码范围:-128 ~ +127

两个0; +0 —— 00000000 B

-0 —— 11111111 B

3) 补码

补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。

运用补码可使减法变成加法。

规定:正数的补码等于原码。

负数的补码求法:1)反码 + 1

2)公式:[X]补 = 2n + X (X<0)

如,设X = - 0101110 B , 则[X]原 = 10101110 B

则[X]补 = [X]反 + 1 = 11010001 + 00000001 = 11010010 B

如,[+6]补 = [+6]原 = 00000110 B

[-6]补 = 28 + (-6) = 10000000 – 00000110 = 11111010 B

8位补码的范围 –128 ~ +127。

0 的个数:只一个,即00000000

而10000000 B是-128的补码。

原码、反码、补码对照表:表1-2 P10

4)补码的运算

当X≥0时,[X]补= [X]反=[X]原

[ [X]补]补 = [X]原

[X]补+ [Y]补 = [ X+Y ]补

[ X-Y ]补= [ X+(-Y)]补

例:已知 X=52 Y=38 求X-Y

3b4d3910b48c9e527b03baacd04b6c99.gif

计算机在做算术运算时,必需检查溢出,以防止发生错误5)运算的溢出问题

资料字长(位数)有一定限制,所以资料的表示应有一个范围。

如字长8位时; 补码范围-128~+127

若运算结果超出这个范围,便溢出。

例:

3d49b3c6986e588e646fc2bdf2d70dc5.gif

错:两个负数相加和为正数。

可见:结果正确(无溢出)时,Cs+1 = Cs

结果错误(溢出)时,Cs+1 ≠ Cs

溢出判断:溢出 = Cs+1 Cs(即结果是0为无溢出;1为有溢出)

1、 十进制数的编码

对机器:二进制数方便,

对人 :二进制数不直观,习惯于十进制数。

在编程过程中,有时需要采用十进制运算,但机器不认识十进制数。

怎么办?

可以将十进制的字符用二进制数进行编码:

a689e98a3fcc44763a6c0b22a9f1fb53.gif

这叫做二进制数对十进制编码——BCD码。

上述每4位二进制数表示一个十进制字符,这4位中各位的权依次是:

8、4、2、1——8421 BCD码。

BCD码的运算:

d7cc966b796bf26bc3045b1068bf3ed9.gif

(1)BCD码加法规则

两个BCD数相加时,“某位”的和小于10则保持不变;

两个BCD数相加时,“某位”的和大于9,则和数应加6修正。

(2)BCD码减法规则

两个BCD数相减时,“某位”的差未发生借位,则差数保持不变;

两个BCD数相减时,“某位”发生了借位,其差应减6修正。

这里“某位”指BCD数中的“个位”、“十位”、“百位”、……

04641972022968d97db05594b19f8716.gif

三、 字符信息的表示

计算机能识别0、1、0、1、……;这些0、1、0、1、……有的代表

数值,有的仅代表要处理的信息(如字母、标点符号、数字符号等文字符号),所以,计算机不仅要认识各种数字,还要能识别各种文字符号。人们事先已对各种文字符号进行二进制数编码:

如,美国信息交换标准码——ASCII码,用一个字节表示一个字符。

低7位是字符的ASCII码值;最高位是通信时的校验位。

思考题:真值与码值有何区别?原码、反码、补码三者之间如何换算?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值