当前位置: 首页 > news >正文

gds 格式文档

gds 格式介绍

Record Description

流式格式输出文件由可变长度的 record 组成。 record 的最小长度为四个字节。 record 可以是无限长的。 record 的前四个字节是头部。头部的前两个字节包含一个计数(一个字节 8 bit),表示 record 的总长度。该计数指示一个 record 的结束位置以及下一个 record 的开始位置。下一个 record 紧接着计数中最后一个字节开始。

头部的第三个字节是 record 类型。头部的第四个字节描述 record 中包含的数据类型。 record 的第五个字节到最后一个字节是数据。

如果输出文件是磁带,那么库的 record 将以2048字节的物理块写出。 record 可能会跨越物理块边界; record 不要求完全包含在单一的物理块中。(现在应该用不到了)

空字(null word)由两个连续的零字节组成。使用空字来填充以下空间:

  • 库的最后一条 record 和其物理块的末尾之间的空间,或
  • 多卷磁带流式文件中最后一条 record 和其物理块的末尾之间的空间。

Data Type Description

可能的数据类型及其值。可以在 record 的第四个字节中找到数据类型的值:

数据类型 Value
No Data Present 0
Bit Array 1
Two-Byte Signed Integer 2
Four-Byte Signed Integer 3
Four-Byte Real 4
Eight-Byte Real 5
ASCII String 6

注意: 一个字(word)由16位组成,编号从0到15,按从左到右的顺序排列。

Bit Array

位数组是一个字,其中使用某个位或一组位的值来表示数据。位数组允许一个字表示多个简单的信息单元。

Two-Byte Signed Integer

二进制补码表示法是一种在计算机中表示整数的方法,特别是用于表示有符号整数。它的主要优点是可以简化加减法运算,且能够避免零的多个表示。以下是其原理和如何计算的解释:

  1. 正数的补码
    正数的补码和它的原码相同。
    例如,8位二进制的 +5 的补码表示:

     原码:0000 0101补码:0000 0101
    
  2. 负数的补码
    负数的补码由两部分组成:

    • 原码:直接表示负数的绝对值。
    • 补码:对原码取反,然后加1。

2字节整数 = 1字,2进制补码表示
两字节带符号整数的范围是 -32,768 到 32,767。

以下是两字节整数的表示方式,其中 S 是符号位,M 是大小(magnitude)。
SMMMMMMM MMMMMMMM以下是两字节整数的示例:
00000000 00000001 = 1
00000000 00000010 = 2
00000000 10001001 = 137
11111111 11111111 = -1
11111111 11111110 = -2
11111111 01110111 = -137

Four-Byte Signed Integer

4字节整数 = 2字,2进制补码表示
四字节带符号整数的范围是 -2,147,483,648 到 2,147,483,647。
以下是四字节整数的表示方式,其中 S 是符号位,M 是大小(magnitude)。

SMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM
四字节整数的示例:
00000000 00000000 00000000 00000001 = 1
00000000 00000000 00000000 00000010 = 2
00000000 00000000 00000000 10001001 = 137
11111111 11111111 11111111 11111111 = -1
11111111 11111111 11111111 11111110 = -2
11111111 11111111 11111111 01110111 = -137

Four-Byte Real and Eight-Byte Real

  • 4字节实数 = 2字,浮点数表示
  • 8字节实数 = 4字,浮点数表示

对于所有非零值:

  • 浮点数由三部分组成:符号位、指数位和尾数。

  • 浮点数的值定义为:尾数 × (16 的指数部分的实际值)

  • 指数部分(第1-7位)采用 Excess-64 表示法,7位字段表示的数字比实际指数大64。

  • 尾数始终是一个大于或等于 1/16 且小于 1 的正分数。对于 4字节实数,尾数是第8到第31位。对于 8字节实数,尾数是第8到第63位。

  • 二进制小数点位于第8位的左边。

  • 第8位代表值 1/2,第9位代表 1/4,以此类推。

  • 为了保持尾数在 1/16 到 1 的范围内,浮点数运算的结果会进行归一化。归一化是一个过程,其中尾数会每次向左移动一个十六进制位,直到其最左边的四个位代表一个非零值。每次移动一个十六进制位,指数会减少 1。由于尾数每次移动四个位,所以归一化后的尾数的最左边三个位可能是零。零值(也称为真零)由所有位都为零的数字表示。

以下是 4 字节和 8 字节实数的表示方式,其中 S 是符号位,E 是指数,M 是尾数。包含了 4 字节实数的示例。实数的负值表示方式与正值完全相同,只不过最高位是 1,而不是 0。在 8 字节实数表示法中,前四个字节与 4 字节实数表示法完全相同。后四个字节包含额外的二进制位,以提供更高的精度。4 字节实数:
SMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM8 字节实数:
SMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM
MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM4 字节实数示例:
注意:以下示例中,前六行的 7 位指数字段为 65。实际指数为 65 - 64 = 1。01000001 00010000 00000000 00000000 = 1
01000001 00100000 00000000 00000000 = 2
01000001 00110000 00000000 00000000 = 3
11000001 00010000 00000000 00000000 = -1
11000001 00100000 00000000 00000000 = -2
11000001 00110000 00000000 00000000 = -3
01000000 10000000 00000000 00000000 = 0.5
01000000 10011001 10011001 10011001 = 0.6
01000000 10110011 00110011 00110011 = 0.1
01000001 00011000 00000000 00000000 = 1.5
01000001 00011001 10011001 10011001 = 1.6
01000001 00011011 00110011 00110011 = 1.1
00000000 00000000 00000000 00000000 = 0
01000001 00010000 00000000 00000000 = 1
01000001 10100000 00000000 00000000 = 10
01000010 01100100 00000000 00000000 = 100
01000011 00111110 10000000 00000000 = 1000
01000100 00100111 00010000 00000000 = 10000
01000101 00011000 01101010 00000000 = 100000

ASCII 字符串

一组 ASCII 字符,每个字符由一个字节表示。所有奇数长度的字符串必须使用一个空字符(数字零)进行填充,并且包含 ASCII 字符串的 record 的字节计数必须包括此空字符。流式读取程序必须查找空字符,并在空字符存在时将字符串长度减 1。

Record Types

http://www.kefakeji.com/news/1230.html

相关文章:

  • 微服务学习-02-微服务技术栈整理
  • JUC线程池: ScheduledThreadPoolExecutor详解
  • [题解] P5735 【深基7.例1】距离函数
  • uv命令怎么安装并且让gitlab-runner用户可以执行
  • NRF54L15 TAMPC — Tamper controller 作用介绍
  • 线上故障的排查清单,运维小哥拿走不谢!
  • NRF54L15 AAR作用介绍
  • NRF54L15 CCM功能
  • ANSYS Products 2025 R2 安装步骤详解(附环境变量与多盘切换说明)
  • 【LeetCode 206】算法:反转链表
  • 如何使用各种工具和命令来检查Ubuntu中的CPU使用情况?
  • 写作业
  • CAXA CAM 制造工程师 2023 下载安装全攻略,一看就会!
  • 恭贺开源之夏 2025 IvorySQL 项目中选学生
  • 自用学习笔记:机器学习入门 速览【第三章】
  • 浅谈MCU的启动
  • KMU — Key management unit 作用
  • 7月25日
  • NRF54L15 GRTC 优点;
  • MS14-019漏洞修复:通过.cmd或.bat文件实现二进制劫持的解决方案
  • 浅谈北京市海淀区七年级下册期末数学试卷T16第二小问
  • 利用Amazon Bedrock生成AI增强设备维护建议
  • SAP为何将S/4HANA更名为SAP Cloud ERP?
  • NRF54L15 关机状态功耗;
  • JUC学习-22-浅谈线程池参数原理
  • C/C++环境搭建
  • 记录Mysql主从
  • To do list
  • 我的博客
  • 基于帧差法与Vibe算法的matlab前景提取