/* ------------------------------------------------------------------ */
/* Decimal Number Library Demonstration program */
/* ------------------------------------------------------------------ */
/* Copyright (c) IBM Corporation, 2001, 2007. All rights reserved. */
/* ----------------------------------------------------------------+- */
/* right margin -->| */
// example5.c -- decimal64 conversions
#include "decimal64.h" // decimal64 and decNumber library
#include <stdio.h> // for (s)printf
int
main(
int
argc,
char
*argv[]) {
decimal64 a;
// working decimal64 number
decNumber d;
// working number
decContext set;
// working context
char
string[DECIMAL64_String];
// number->string buffer
char
hexes[25];
// decimal64->hex buffer
int
i;
// counter
if
(argc<2) {
// not enough words
printf
(
"Please supply a number.\n"
);
return
1;
}
decContextDefault(&set, DEC_INIT_DECIMAL64);
// initialize
decimal64FromString(&a, argv[1], &set);
// lay out the decimal64 as eight hexadecimal pairs
for
(i=0; i<8; i++) {
sprintf
(&hexes[i*3],
"%02x "
, a.bytes[i]);
}
decimal64ToNumber(&a, &d);
decNumberToString(&d, string);
printf
(
"%s => %s=> %s\n"
, argv[1], hexes, string);
return
0;
}
// main