理论教育 数据在计算机中的表示与存储

数据在计算机中的表示与存储

时间:2023-11-24 理论教育 版权反馈
【摘要】:数据在计算机中的表示与存储是数据处理的基础。二进制数在计算机中易于表示、易于存储,但二进制的一个很大缺点是表示一个数所需多位,人们阅读、书写、记忆等不太方便。表1-1、表1-2给出了常用计数制的基数和所需要的数码,表1-2给出了常用计数制的表示方法。把十进制数10、八进制数8和十六进制数16分别转换成二进制数。

数据在计算机中的表示与存储

计算机的功能就是进行数据处理(信息处理),目前的计算机,不仅能处理数值型数据,还能处理非数值型数据,包括英文字符、汉字、图像、音频和视频等多种媒体数据。数据在计算机中的表示与存储是数据处理的基础。

1.基本概念

按进位的原则进行计数称为进位计数制,简称“数制”。日常生活中,人们习惯于用十进制进行计数。但在计算机内部,为了便于数据的表示和计算,采用二进制计数方法。二进制数在计算机中易于表示(只有0和1两种形式)、易于存储,但二进制的一个很大缺点是表示一个数所需多位,人们阅读、书写、记忆等不太方便。例如十进制数(1000)10,用二进制数表示则需要10位二进制数字(1111101000)2。为了便于人们阅读和书写,在编写程序时,也经常使用十进制数、八进制数和十六进制数。

(1)基数

每种数制中数码的个数称为该数制的基数。例如,二进制中只有两个数码(0和1),其基数为2,计算时逢2进1;十进制中有10个数码(0~9),其基数为10,计算时逢10进1。

(2)位权

在每种数制中,一个数码所处位置的不同,代表的数值大小也不同,称为具有不同的位权。例如,十进制数9999,最左边的9代表9000,最右边的9代表9个。这就是说,该数从右向左的位权依次是个(100)、十(101)、百(102)、千(103)。

在编写程序时,根据需要,可以用二进制、十进制、八进制、十六进制来表示数据,但在计算机内部,只能以二进制形式表示和存储数据。所以计算机在运行程序时,经常需要先把其他进制转换成二进制再进行处理,处理结果(二进制形式)在输出前再转换成其他进制,以方便用户阅读和使用。表1-1、表1-2给出了常用计数制的基数和所需要的数码,表1-2给出了常用计数制的表示方法。

表1-1 常用数制的基数和数码

表1-2 常用数制的表示方法

不同数制有不同的基数和位权。

2.书写规则

为了便于区分各种数制的数据,常采用如下方法进行书写:

(1)在数字后面加写相应的英文字母作为标识,这种方式便于计算机识别。

B(binary)表示二进制数,二进制数的101可写成101B。

O(octonary)表示八进制数,八进制数的101可写成101O或101Q(由于字母O和数字0容易混淆,常用Q代替O)。

D(decimal)表示十进制数,十进制数的101可写成101D(D可省略)。

H(hexadecimal)表示十六进制数,十六进制数101可写成101H。

(2)在括号外面加数字下标,这种方式便于人工阅读。

(101)2表示二进制数的101。(www.daowen.com)

(101)8表示八进制数的101。

(101)10表示十进制数的101,十进制数可省略下标。

(101)16表示十六进制数的101。

3.各种数制互相转换

二进制数转换成十进制数,按权展开相加即可。二进制数转换成八进制数,以小数点为界,分别向左向右分成3位一组,不够3位补0,分完组后对应成八进制数。二进制数转换成十六进制数,以小数点为界,分别向左向右分成4位一组,不够4位补0,对应成十六进制数。

【例1.1】把二进制数(1011001.10111)2转换成十进制、八进制和十六进制数。

(1011001.10111)2

=1×26+1×24+1×23+1×20+1×2-1+1×2-3+1×2-4+1×2-5

=64+16+8+1+0.5+0.125+0.0625+0.03125

=(89.71875)10

(1011001.10111)2

=(001 011 001.101 110)2

=(131.56)8

(1011001.10111)2

=(0101 1001.1011 1000)2

=(59.B8)16

十进制数转换成二进制数,先把十进制数分解成若干个数相加,每个数都是2的若干次幂,然后对应成二进制数。八进制数转换成二进制数,每一个八进制位展开成3个二进制位即可。十六进制数转换成二进制数,每一个十六进制位展开成4个二进制位即可。

【例1.2】把十进制数(98.75)10、八进制数(276.15)8和十六进制数(3AC.1E)16分别转换成二进制数。

(98.75)10=64+32+2+0.5+0.25=(1100010.11)2

(276.15)8=(010 111 110.001 101)2=(10111110.001101)2

(3AC.1E)16=(0011 1010 1100.0001 1110)2=(1110101100.0001111)2

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈