Delphi中對BCD碼的直接支援

2021-09-08 21:51:51 字數 1350 閱讀 4275

首先,delphi支援的bcd碼的資料型別名為tbcd,它的定義如下:

type

tbcd  = packed record

precision: byte;        

signspecialplaces: byte;

fraction: packed array [0..31] of byte;

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碼,轉換失敗返回給定的預設值

BCD碼轉為相應的資料

例如將35h轉換為二進位制資料應得到 23h 即十進位制的 35datas segment 此處輸入資料段 buf db 35h,64h,89h res db?datas ends stacks segment 此處輸入堆疊段 stacks ends codes segment assume cs ...

BCD碼的加法和減法

bcd碼以四位二進位制數視作乙個十進位制位 例 bcd碼0011 0100 二進位制 34h 十六進製制 表示34 十進位制 bcd碼修正規則如下 1 若兩個8421碼數相加之和等於或小於1001,不需修正。2 若相加和在10 15之間,一方面應向高位產生進製,本身還要進行加6修正,進製是在加6修正...

關於BCD碼的編碼和解碼

1 bcd 碼 binary coded decimal 二到十進位制編碼 計算機內部多採用二進位制表示和處理數值資料,因此在計算機輸入和輸出資料時,就要進行進製的轉換處理。用 4位二進位制數來表示 1位十進位制數中的 0 9這 10個數碼,簡稱 bcd碼,即 bcd bcd碼編碼方法很多,通常採用...