最近在Delphi下写软件,需要将数据转换为BCD码和将BCD码转换为其它数据类型,从网上搜索了一下,没有发现好的函数,于是就想自定义函数来完成BCD与其它格式的数据转换功能。但最终没有动手写,先查查Delphi的帮助吧。结果一查才发现Delphi还真的直接支持BCD码的数据。现将Delphi对BCD码的支持资料大致介绍一番:

首先,Delphi支持的BCD码的数据类型名为TBCD,它的定义如下:

type 
  TBcd  = packed record
    Precision: Byte;         { 精度,1..64 }
    SignSpecialPlaces: Byte; { 符号位等信息的组合,按位表示,D7:符号位,D6:Special(不知道翻译成什么意思较好), D5~D0:Places }
    Fraction: packed array [0..31] of Byte; { BCD值,每个字节能够表示00~99范围内的值,Fraction[0]是最高位}
  end;

对BCD的支持是在FMTBcd单元中,所以要使用BCD函数,则需要引用此单元。

Delphi的BCD函数有:

BcdAdd procedure
计算两个BCD码的和

BcdCompare function
比较两个BCD的大小

BcdDivide procedure
BCD数据相除

BcdMultiply procedure
BCD数据相乘

BcdPrecision function
返回BCD的数据个数。如BCD的123返回值为3,BCD值为9382时返回值为4。

BcdScale function
返回BCD码的小数位数

BcdSubtract procedure
两个BCD码相减

BCDToCurr function
转换BCD码为Current格式的数据类型

BcdToDouble function
BCD码转换为Double格式的数据类型

BcdToInteger function
BCD码转换为Integer格式的数据类型

BcdToStr function
BCD码转换为字符串

BcdToStrF function
BCD码转换为带格式控制的字符串

CurrToBCD function
Current数据类型转换为BCD码

DoubleToBcd function
Double数据类型转换为BCD码

FormatBcd function
格式化BCD码为字符串

IntegerToBcd function
Integer整数类型转换为BCD码

IsBcdNegative function
判断BCD是否为负数

NormalizeBcd function
将一个BCD的值根据给定的精度和小数位数转换为另外一个BCD码的值

NullBcd constant
判断BCD是否为NULL

StrToBcd function
字符串转换为BCD码

TryStrToBcd function
字符串转换为BCD码,转换失败返回给定的默认值

Delphi中对BCD码的直接支持 (转)的更多相关文章

  1. Delphi中BCD和Currency类型

    用了这些年的Delphi,竟然对Currency及TBCDField一知半解,下文给了很好的讲解,值得一读. 一.       BCD类型 BCD即Binary-Coded Decimal?,在Del ...

  2. 谈Delphi中SSL协议的应用(好多相关文章)

    摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...

  3. 老陈---谈Delphi中SSL协议的应用[转]

    摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...

  4. BCD码

    BCD码(Binary-Coded Decimal‎)亦称二进码十进数或二-十进制代码,是用4位二进制数来表示1位十进制数中的0~9这10个数码,用一种使用二进制编码十进制的数字编码形式.BCD码这种 ...

  5. FPGA中将十进制数在数码管中显示(verilog版)--二进制转换为BCD码

    这周有朋友问怎样在fpga中用数码管来显示一个十进制数,比如1000.每个数码管上显示一位十进制数.如果用高级语言来分离各位,只需要分别对该数做1000,100,10对应的取商和取余即可分离出千百十个 ...

  6. delphi 中几种多线程操作方式

    在了解多线程之前我们先了解一下进程和线程的关系 一个程序至少有一个主进程,一个进程至少有一个线程. 为了保证线程的安全性请大家看看下面介绍 Delphi多线程同步的一些处理方案大家可以参考:http: ...

  7. Delphi 中 COM 实现研究手记(一)

    前言 前些日子用 Delphi 写了一个 Windows 外壳扩展程序,大家知道 Windows 外壳扩展实际上就是 COM 的一种应用 -- Shell COM,虽然整个程序写得还算比较顺利,但写完 ...

  8. DELPHI中多线程知识【转】

    本文的内容取自网络,并重新加以整理,在此留存仅仅是方便自己学习和查阅.所有代码均亲自测试 delphi7下测试有效.图片均为自己制作. 多线程应该是编程工作者的基础技能, 但这个基础我从来没学过,所以 ...

  9. 转发 Delphi中线程类TThread 实现多线程编程

    Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchr ...

随机推荐

  1. c/s模式 (C#)下Ftp的多文件上传及其上传进度

    因为项目要求,制作的一个多文件上传,并显示进度条一段代码(vs2005环境).(只为粗略的实现,代码并不规范) 当多个文件上传的时候,需要依次队列形式一个个上传,当上传某个文件的时候,锁定进程,上传完 ...

  2. android 入门-基础了解

    strings.xml – 文字資源. colors.xml – 顏色資源. dimens.xml – 尺寸資源. arrays.xml – 陣列資源. styles.xml – 樣式資源. #RGB ...

  3. wp8 入门到精通 数据库更新字段(一)

    public class UserInfoDB : BaseDB { public UserInfoDB() : base(@"Data Source=isostore:\MakeLove\ ...

  4. h264 profile & level

    转自:http://blog.csdn.net/sphone89/article/details/17492433 H.264 Profiles H.264有四种profile,每个profile支持 ...

  5. RPC框架DUBBO

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  6. Arduino101学习笔记(十)—— 串口通信

    //打开串口 Serial.begin(); //获取串口上可读取的数据的字节数.该数据是指已经到达并存储在接收缓存(共有64字节)中 Serial.available(); //读串口数据,串口上第 ...

  7. 导出word使用模版

    在我们做我们的小组项目的时候,刚开始的时候我们用到的是Mvc+EF,用上了我们的ITOO框架.在最开始的计划,我们要用到瑞郎报表.可是呢,由于工期原因以及技术暂时没有实现,我们不得不想一个比较折中的方 ...

  8. Apache Tomcat配置

  9. Loadrunner中关联的作用:

    获取并保存变化的request值{1.sessionid;2.获取上个请求的响应值,用于下个请求参数} 作为检查点 脚本调试工具

  10. windows进程中的内存结构[转载]

    在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识. 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据.那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变 ...