mirror of
https://github.com/jqlang/jq.git
synced 2026-10-12 02:16:58 +00:00
37 lines
1.5 KiB
C
Vendored
37 lines
1.5 KiB
C
Vendored
/* ------------------------------------------------------------------ */
|
|
/* 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
|