123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "stdafx.h"
- #include <stdio.h>
- #include<string.h>
- #include "utils.h"
- char Asc2hex(char ch1, char ch2)
- {
- char ch;
-
- if (ch1 >= 'A')
- ch = (char)((ch1 - 0x37) << 4);
- else
- ch = (char)((ch1 - '0') << 4);
- if (ch2 >= 'A')
- ch |= ch2 - 0x37;
- else
- ch |= ch2 - '0';
- return ch;
- }
- int Aschex_2_bcdhex(unsigned char aschex[], int len, unsigned char bcdhex[])
- {
- int i, j;
- if (len % 2 == 0)
- j = len / 2;
- else
- j = len / 2 + 1;
- for (i = 0; i < j; i++)
- bcdhex[i] = Asc2hex(aschex[2 * i], aschex[2 * i + 1]);
- return(j);
- }
- char Hexlow2asc(int xxc)
- {
- xxc &= 0x0f;
- if (xxc<0x0a)
- xxc += '0';
- else
- xxc += 0x37;
- return (char)xxc;
- }
- char Hexhigh2asc(int xxc)
- {
- xxc &= 0xf0;
- xxc = xxc >> 4;
- if (xxc<0x0a)
- xxc += '0';
- else
- xxc += 0x37;
- return (char)xxc;
- }
- int Bcdhex_2_aschex(unsigned char bcdhex[], int len, unsigned char aschex[])
- {
- int i;
- for (i = 0; i<len; i++)
- {
- aschex[2 * i] = Hexhigh2asc(bcdhex[i]);
- aschex[2 * i + 1] = Hexlow2asc(bcdhex[i]);
- }
- return(len * 2);
- }
- void printfHEX(unsigned char* strbuf, int length)
- {
- for (int i = 0; i < length; i++)
- {
- printf("%02X", strbuf[i]);
- }
- printf("\n");
- }
|