Delphi中对BCD码的直接支持 (转)
最近在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码的直接支持 (转)的更多相关文章
- Delphi中BCD和Currency类型
用了这些年的Delphi,竟然对Currency及TBCDField一知半解,下文给了很好的讲解,值得一读. 一. BCD类型 BCD即Binary-Coded Decimal?,在Del ...
- 谈Delphi中SSL协议的应用(好多相关文章)
摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...
- 老陈---谈Delphi中SSL协议的应用[转]
摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...
- BCD码
BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码,是用4位二进制数来表示1位十进制数中的0~9这10个数码,用一种使用二进制编码十进制的数字编码形式.BCD码这种 ...
- FPGA中将十进制数在数码管中显示(verilog版)--二进制转换为BCD码
这周有朋友问怎样在fpga中用数码管来显示一个十进制数,比如1000.每个数码管上显示一位十进制数.如果用高级语言来分离各位,只需要分别对该数做1000,100,10对应的取商和取余即可分离出千百十个 ...
- delphi 中几种多线程操作方式
在了解多线程之前我们先了解一下进程和线程的关系 一个程序至少有一个主进程,一个进程至少有一个线程. 为了保证线程的安全性请大家看看下面介绍 Delphi多线程同步的一些处理方案大家可以参考:http: ...
- Delphi 中 COM 实现研究手记(一)
前言 前些日子用 Delphi 写了一个 Windows 外壳扩展程序,大家知道 Windows 外壳扩展实际上就是 COM 的一种应用 -- Shell COM,虽然整个程序写得还算比较顺利,但写完 ...
- DELPHI中多线程知识【转】
本文的内容取自网络,并重新加以整理,在此留存仅仅是方便自己学习和查阅.所有代码均亲自测试 delphi7下测试有效.图片均为自己制作. 多线程应该是编程工作者的基础技能, 但这个基础我从来没学过,所以 ...
- 转发 Delphi中线程类TThread 实现多线程编程
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchr ...
随机推荐
- lvs+keepalived 负载均衡
LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器.目前有三种IP负 载均衡技术(VS/NAT.VS/T ...
- hdu 5294 最短路+最大流 ***
处理处最短路径图,这个比较巧妙 链接:点我
- hdu 2516 FIB博弈
分析请看:cxlove #include<iostream> #include<cstdio> #include<cstring> #include<algo ...
- hdu 4061 福州赛区网络赛A 数学 ***
a1/sum #include<cstdio> #include<iostream> #include<algorithm> #include<cstring ...
- 如何在java程序中调用linux命令或者shell脚本
转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...
- SPI-软件开发注意事项
01 PD ,设置数据库前一定把模板设置号,命名规则规划清楚.
- JAVA的容器---List,Map,Set (转)
JAVA的容器---List,Map,Set Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashM ...
- java Clone使用方法详解
java"指针" Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念.并且由于Java不能 通过 ...
- 【SQL Sever】实现SQL Sever的发布。订阅。 双机热备
实现SQL Sever的发布和订阅 最大的好处就是: 可以实现读写分离,增删改操作在主数据库服务器上进行,查询在备份数据库服务器上进行.一方面提高软件执行效率,另一方面也减轻主库压力. 本次实现发布 ...
- LoadRunner如何监控Tomcat性能
使用LoadRunner做性能测试,一般的直觉是LR只能完成脚本录制和编写模拟用户的请求行为,但是在某些情况下,要监控一些中间件或web服务器的性能时,就不能通过录制脚本来完成了,那么就需要手工来编写 ...