Back to index

lightning-sunbird  0.9+nobinonly
Defines | Functions
basecvt.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mpi.h"

Go to the source code of this file.

Defines

#define IBASE   10
#define OBASE   16
#define USAGE   "Usage: %s ibase obase [value]\n"
#define MAXBASE   64
#define MINBASE   2

Functions

int main (int argc, char *argv[])

Define Documentation

#define IBASE   10

Definition at line 51 of file basecvt.c.

#define MAXBASE   64

Definition at line 54 of file basecvt.c.

#define MINBASE   2

Definition at line 55 of file basecvt.c.

#define OBASE   16

Definition at line 52 of file basecvt.c.

#define USAGE   "Usage: %s ibase obase [value]\n"

Definition at line 53 of file basecvt.c.


Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 57 of file basecvt.c.

{
  int    ix, ibase = IBASE, obase = OBASE;
  mp_int val;

  ix = 1;
  if(ix < argc) {
    ibase = atoi(argv[ix++]);
    
    if(ibase < MINBASE || ibase > MAXBASE) {
      fprintf(stderr, "%s: input radix must be between %d and %d inclusive\n",
             argv[0], MINBASE, MAXBASE);
      return 1;
    }
  }
  if(ix < argc) {
    obase = atoi(argv[ix++]);

    if(obase < MINBASE || obase > MAXBASE) {
      fprintf(stderr, "%s: output radix must be between %d and %d inclusive\n",
             argv[0], MINBASE, MAXBASE);
      return 1;
    }
  }

  mp_init(&val);
  while(ix < argc) {
    char  *out;
    int    outlen;

    mp_read_radix(&val, argv[ix++], ibase);

    outlen = mp_radix_size(&val, obase);
    out = calloc(outlen, sizeof(char));
    mp_toradix(&val, out, obase);

    printf("%s\n", out);
    free(out);
  }

  mp_clear(&val);

  return 0;
}

Here is the call graph for this function: