From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

/* ------------------------------------------------------------------ */
/* 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