ADD: Binary Encoded Digit -> Decimal

ADD: Decimal -> Binary Encoded Digit

Ie
  decimal 2345 becomes 0x2345
  and
  hex 0x2345 becomes decimal 2345
This commit is contained in:
iceman1001 2016-07-29 23:29:37 +02:00
commit dae31af21e
2 changed files with 23 additions and 4 deletions

View file

@ -566,3 +566,12 @@ uint32_t reflect(uint32_t v, int b) {
} }
return v; return v;
} }
uint64_t HornerScheme(uint64_t num, uint64_t divider, uint64_t factor) {
uint64_t remainder=0, quotient=0, result=0;
remainder = num % divider;
quotient = num / divider;
if(!(quotient == 0 && remainder == 0))
result += HornerScheme(quotient, divider, factor) * factor + remainder;
return result;
}

View file

@ -9,12 +9,13 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include <stdio.h> #include <stdio.h>
#include <stdint.h> //included in data.h #include <stdint.h> //included in data.h
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#include <time.h> #include <time.h>
#include "data.h" //for FILE_PATH_SIZE #include <math.h> // math.pow
#include "data.h" // for FILE_PATH_SIZE
#include "proxmark3.h" #include "proxmark3.h"
#ifndef BITMASK #ifndef BITMASK
@ -55,6 +56,14 @@
#ifndef SWAP_NIBBLE #ifndef SWAP_NIBBLE
# define SWAP_NIBBLE(b) ( (NIBBLE_LOW(b)<< 4) | NIBBLE_HIGH(b)) # define SWAP_NIBBLE(b) ( (NIBBLE_LOW(b)<< 4) | NIBBLE_HIGH(b))
#endif #endif
#ifndef BCD2DEC
# define BCD2DEC(bcd) HornerScheme(bcd, 0x10, 10)
#endif
#ifndef DEC2BCD
# define DEC2BCD(dec) HornerScheme(dec, 10, 0x10)
#endif
int ukbhit(void); int ukbhit(void);
void AddLogLine(char *fileName, char *extData, char *c); void AddLogLine(char *fileName, char *extData, char *c);
@ -102,4 +111,5 @@ uint32_t le32toh (uint8_t *data);
uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bits); uint32_t PackBits(uint8_t start, uint8_t len, uint8_t* bits);
void rol(uint8_t *data, const size_t len); void rol(uint8_t *data, const size_t len);
uint32_t SwapBits(uint32_t value, int nrbits); uint32_t SwapBits(uint32_t value, int nrbits);
uint32_t reflect(uint32_t v, int b); uint32_t reflect(uint32_t v, int b);
uint64_t HornerScheme(uint64_t num, uint64_t divider, uint64_t factor);