数据的机内表示 数据在计算机内存中的表示

数据结构的三要素是什么?

数据的机内表示 数据在计算机内存中的表示

一、数据的逻辑结构

指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与他们在计算机中的存储位置无关。逻辑结构包括:

1、集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;

2、线性结构:数据结构中的元素存在一对一的相互关系;

3、树形结构:数据结构中的元素存在一对多的相互关系;

4、图形结构:数据结构中的元素存在多对多的相互关系。

二、数据的物理结构

指数据的逻辑结构在计算机存储空间的存放形式。

数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。

数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。

关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:

顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。

三、数据存储结构

数据的逻辑结构在计算机存储空间中的存放形式称为数据的物理结构(也称为存储结构)。一般来说,一种数据结构的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序存储、链式存储、索引存储和哈希存储等。

数据的顺序存储结构的特点是:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系;非顺序存储的特点是:借助指示元素存储地址的指针表示数据元素之间的逻辑关系。

扩展资料

在程序中,堆用于动态分配和释放程序所使用的对象。在以下情况中调用堆操作:

1、事先不知道程序所需对象的数量和大小。

2、对象太大,不适合使用堆栈分配器。

堆使用运行期间分配给代码和堆栈以外的部分内存。

传统上,操作系统和运行时库随附了堆实现。当进程开始时,操作系统创建称为进程堆的默认堆。如果没有使用其他堆,则使用进程堆分配块。语言运行时库也可在一个进程内创建单独的堆。(例如,C 运行时库创建自己的堆。)

除这些专用堆外,应用程序或许多加载的动态链接库 (DLL) 之一也可以创建并使用单独的堆。Win32 提供了一组丰富的 API用于创建和使用专用堆。有关堆函数的优秀教程,请参阅 MSDN 平台 SDK 节点。

当应用程序或 DLL 创建专用堆时,这些堆驻留于进程空间中并且在进程范围内是可访问的。某一给定堆分配的任何数据应为同一堆所释放。(从一个堆分配并释放给另一个堆没有意义。)

在所有虚拟内存系统中,堆位于操作系统的虚拟内存管理器之上。语言运行时堆也驻留在虚拟内存之上。某些情况下,这些堆在操作系统堆的上层,但语言运行时堆通过分配大的块来执行自己的内存管理。绕开操作系统堆来使用虚拟内存函数可使堆更好地分配和使用块。

典型的堆实现由前端分配器和后端分配器组成。前端分配器维护固定大小块的自由列表。当堆收到分配调用后,它尝试从前端列表中查找自由块。如果此操作失败,则堆将被迫从后端(保留和提交虚拟内存)分配一个大块来满足请求。通常的实现具有每个块分配的开销,这花费了执行周期,也减少了可用存储区。

Windows NT的实现(Windows NT 4.0 版及更高版本)使用 127 个从 8 到 1,024 字节不等的 8 字节对齐块的自由列表和 1 个混合列表。混合列表(自由列表【0】)包含大小超过 1,024 字节的块。自由列表包含在双向链接表中链接在一起的对象。默认情况下,进程堆执行合并操作。(合并操作是组合相邻的自由块以生成更大的块的操作。)合并操作花费了额外的周期,但减少了堆块的内部碎片。

单个全局锁可防止多线程同时使用堆。此锁主要用于保护堆数据结构不受多线程的任意访问。当堆操作过于频繁时,此锁会对性能造成负面影响。

参考资料来源:百度百科-数据结构

参考资料来源:百度百科-堆

什么是计算机中数据的表示方法

计算机数据表示是指处理机硬件能够辨认并进行存储、传送和处理的数据表示方法。

表示方法:

数制:数制即是进位计数制,它包含3个基本要素:数码、基数、位权。数码是用来表示某一种进位计算制的一组符号,如十进制数中的0、1、2、3、4、5、6、7、8、9;

1、十进制数(Decimal)

十进制数是人们十分熟悉的计数体制,它的数码是用0、1、2、3、4、5、6、7、8、9十个数字符号来表示,基数是10,进位规律是“逢十进一”。

2、二进制数(Binary)

与十进制数类似,二进制数的数码是用0、1两个数字符号来表示,基数为2,进位规律是“逢二进一”。

3、八进制数(Octonary)

在八进制数中,它的数码是用0、1、2、3、4、5、6、7八个数字符号来表示,基数是8,进位规律是“逢八进一”。

4、十六进制数(Hexadecimal)

在十六进制数中,它的数码是用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数字和字母符号来表示,基数是16,进位规律是逢十六进一。

扩展资料

计算机中的数据表示

1、数据的存储单位

在计算机中,描述数据的存储单位有位(bit)、字节(Byte)等。位是计算机中数据的最小存储单位,能表示一位二进制数,只能存储一个0或1。字节是计算机中数据的基本存储单位,一个字节是由八位二进制数组成,即1Byte=8bit。

2、机器数与真值

在计算机中,为了表示正数和负数,用数的最高位代表符号位,0表示正数,1表示负数。

3、原码

最高位是符号位,用0表示正数,用1表示负数,其余数值部分用二进制数的绝对值表示整数的方法称为原码表示法,简称原码。通常用[X]原表示X的原码。

4、反码

正数的反码与正数的原码相同,负数的反码是在负数原码的基础上,除符号位是1之外,其他位按位取反(即是0的改为1,是1的改为0)。

5、补码

正数的补码与正数的原码相同,负数的补码是先对负数求出反码,再在反码的基础上最低位加1。

参考资料来源:百度百科-计算机数据表示

它的二进制数为11000001,则该数据定点数的机内表示形式为?

它的二进制数为11000001,则该数据定点数的机内表示形式为:1.1000001。然后首位1是符号位,这个数据是负数。后面7位就是小数点的数值。

可以参考下面的说明,详细一点的来源:

定点小数是计算机 处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数.

8位字长纯小数,第一位为符号位,小数点在第一位后面,后七位为具体数值,如: -0.1001原码表示为1.1001,反码为1.0110,补码为1.0111.

1. 定点数表示法(fixed-point)

所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。

定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:

一般说来,如果最末位xn= 1,前面各位都为0,则数的绝对值最小,即|x|min= 2^(-n)。如果各位均为1,则数的绝对值最大,即|x|max=1-2^(-n)。所以定点小数的表示范围是:

2^(-n)≤|x|≤1 -2^(-n)

任何一个定点小数都可以被写成 :

N = NS . N-1 N-2 … N-M

如果在计算机中用m+1个二进制位表示上述小数,则可以用最高(最左)一个二进制位表示符号(如用0表示正号,则1就表示负号),而用后面的m个二进制位表示该小数的数值。小数点不用明确表示出来,因为它总是固定在符号位与最高数值位之间。

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。