\hypertarget{xbbcd_8h_source}{}\doxysection{xbbcd.\+h} \label{xbbcd_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.1.4/src/include/xbbcd.h@{/mnt/1Tdata/xbase/xbase64-\/4.1.4/src/include/xbbcd.h}} \mbox{\hyperlink{xbbcd_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{1 \textcolor{comment}{/* xbbcd.h}} \DoxyCodeLine{2 \textcolor{comment}{}} \DoxyCodeLine{3 \textcolor{comment}{XBase64 Software Library}} \DoxyCodeLine{4 \textcolor{comment}{}} \DoxyCodeLine{5 \textcolor{comment}{Copyright (c) 1997,2003,2014, 2018, 2019, 2022 Gary A Kunkel}} \DoxyCodeLine{6 \textcolor{comment}{}} \DoxyCodeLine{7 \textcolor{comment}{The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.}} \DoxyCodeLine{8 \textcolor{comment}{}} \DoxyCodeLine{9 \textcolor{comment}{Email Contact:}} \DoxyCodeLine{10 \textcolor{comment}{}} \DoxyCodeLine{11 \textcolor{comment}{ XDB-\/devel@lists.sourceforge.net}} \DoxyCodeLine{12 \textcolor{comment}{ XDB-\/users@lists.sourceforge.net}} \DoxyCodeLine{13 \textcolor{comment}{}} \DoxyCodeLine{14 \textcolor{comment}{*/}} \DoxyCodeLine{15 } \DoxyCodeLine{16 \textcolor{preprocessor}{\#ifndef \_\_XB\_BCD\_H\_\_}} \DoxyCodeLine{17 \textcolor{preprocessor}{\#define \_\_XB\_BCD\_H\_\_}} \DoxyCodeLine{18 \textcolor{preprocessor}{\#ifdef XB\_INDEX\_SUPPORT}} \DoxyCodeLine{19 } \DoxyCodeLine{21 } \DoxyCodeLine{22 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacexb}{xb}}\{} \DoxyCodeLine{23 } \DoxyCodeLine{24 \textcolor{comment}{// structure for bcd value}} \DoxyCodeLine{25 \textcolor{comment}{// next structure superceeded. Different compilers allocate different}} \DoxyCodeLine{26 \textcolor{comment}{// sizes to structures with bit fields, can't count on the size}} \DoxyCodeLine{27 } \DoxyCodeLine{28 \textcolor{comment}{/*}} \DoxyCodeLine{29 \textcolor{comment}{struct XBDLLEXPORT xbBcdStrucOld \{}} \DoxyCodeLine{30 \textcolor{comment}{ unsigned SigDigits : 8; // significant digit count}} \DoxyCodeLine{31 \textcolor{comment}{ unsigned Filler : 2; // always set to 1}} \DoxyCodeLine{32 \textcolor{comment}{ unsigned EncDigits : 5; // encoded digit count}} \DoxyCodeLine{33 \textcolor{comment}{ unsigned Sign : 1; // +/-\/ sign}} \DoxyCodeLine{34 \textcolor{comment}{ unsigned char Data[10];}} \DoxyCodeLine{35 \textcolor{comment}{\};}} \DoxyCodeLine{36 \textcolor{comment}{*/}} \DoxyCodeLine{37 } \DoxyCodeLine{38 \textcolor{keyword}{struct }XBDLLEXPORT xbBcdStruct \{} \DoxyCodeLine{39 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cSigDigits; \textcolor{comment}{// significant digit count}} \DoxyCodeLine{40 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cEncDigits; \textcolor{comment}{// encoded digit count}} \DoxyCodeLine{41 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cData[10]; \textcolor{comment}{// data}} \DoxyCodeLine{42 \};} \DoxyCodeLine{43 } \DoxyCodeLine{44 \textcolor{keyword}{struct }XBDLLEXPORT xbByteSplit \{} \DoxyCodeLine{45 \textcolor{keywordtype}{unsigned} c1 : 4;} \DoxyCodeLine{46 \textcolor{keywordtype}{unsigned} c2 : 4;} \DoxyCodeLine{47 \};} \DoxyCodeLine{48 } \DoxyCodeLine{49 \textcolor{keyword}{class }XBDLLEXPORT xbBcd \{} \DoxyCodeLine{50 \textcolor{keyword}{public}:} \DoxyCodeLine{51 } \DoxyCodeLine{52 xbBcd( \textcolor{keyword}{const} xbString \&sIn );} \DoxyCodeLine{53 xbBcd( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dIn );} \DoxyCodeLine{54 xbBcd( \textcolor{keyword}{const} \textcolor{keywordtype}{void} *vBcd12In );} \DoxyCodeLine{55 \textcolor{keywordtype}{void} Set( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dIn );} \DoxyCodeLine{56 \textcolor{keywordtype}{void} Set( \textcolor{keyword}{const} \textcolor{keywordtype}{void} *cBcd12In );} \DoxyCodeLine{57 \textcolor{keywordtype}{void} Set( \textcolor{keyword}{const} xbString \&sIn );} \DoxyCodeLine{58 } \DoxyCodeLine{59 } \DoxyCodeLine{60 \textcolor{keywordtype}{void} ToString( xbString \&sOut );} \DoxyCodeLine{61 \textcolor{keywordtype}{void} ToDouble( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} \&dOut );} \DoxyCodeLine{62 \textcolor{keywordtype}{void} ToBcd( xbBcdStruct \&bcdOut );} \DoxyCodeLine{63 \textcolor{keywordtype}{void} ToChar( \textcolor{keywordtype}{char} *cOut );} \DoxyCodeLine{64 } \DoxyCodeLine{65 \textcolor{comment}{// const unsigned char * GetBcd() const;}} \DoxyCodeLine{66 \textcolor{keywordtype}{void} StringToBcd( \textcolor{keyword}{const} xbString \&sStringIn );} \DoxyCodeLine{67 } \DoxyCodeLine{68 xbInt16 Compare( \textcolor{keyword}{const} xbBcd \&bcdIn );} \DoxyCodeLine{69 xbInt16 Compare( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} d );} \DoxyCodeLine{70 } \DoxyCodeLine{71 \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *GetData() \textcolor{keyword}{const};} \DoxyCodeLine{72 \textcolor{keyword}{const} \textcolor{keywordtype}{void} * GetBcd() \textcolor{keyword}{const};} \DoxyCodeLine{73 } \DoxyCodeLine{74 } \DoxyCodeLine{75 \textcolor{keyword}{private}:} \DoxyCodeLine{76 \textcolor{keywordtype}{void} ctor();} \DoxyCodeLine{77 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} GetEncDigitsNoSign() \textcolor{keyword}{const};} \DoxyCodeLine{78 \textcolor{keywordtype}{unsigned} GetSign() \textcolor{keyword}{const};} \DoxyCodeLine{79 \textcolor{keywordtype}{unsigned} GetSigDigits() \textcolor{keyword}{const};} \DoxyCodeLine{80 \textcolor{keywordtype}{unsigned} GetActualSigDigits() \textcolor{keyword}{const};} \DoxyCodeLine{81 } \DoxyCodeLine{82 } \DoxyCodeLine{83 \textcolor{comment}{// xbBcdStruc bcdOld;}} \DoxyCodeLine{84 xbBcdStruct bcd;} \DoxyCodeLine{85 \};} \DoxyCodeLine{86 } \DoxyCodeLine{87 \} \textcolor{comment}{/* namespace xb */}} \DoxyCodeLine{88 } \DoxyCodeLine{89 } \DoxyCodeLine{91 } \DoxyCodeLine{92 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_INDEX\_SUPPORT */}\textcolor{preprocessor}{}} \DoxyCodeLine{93 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_BCD\_H\_\_ */}\textcolor{preprocessor}{}} \end{DoxyCode}