⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 posutils.c

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 C
字号:
#include "posutils.h" 

/***************************************************************************
  SUPPOSE dsp CONTAINS THE ASSCII ARRAY "12345F" AND WE EXECUTE THIS FUNCTION
  THEN THE ARRAY  AT hex WILL CONTAIN 12H,34H, 5FH
****************************************************************************
void DSP_2_HEX(unsigned char *dsp, unsigned char *hex, int count)
{
    int i;

    for (i = 0; i < count; i++)
    {
        hex[i] = ((dsp[i << 1] <= 0x39) ? dsp[i << 1] - 0x30
                                       : dsp[i << 1] - 0x41 + 10);
        hex[i] = hex[i] << 4;
        hex[i] += ((dsp[(i << 1) + 1] <= 0x39) ? dsp[(i << 1) + 1] - 0x30
                                       : dsp[(i << 1) + 1] - 0x41 + 10);
    }
}

/***************************************************************************
 SUPPOSE HEX CONTAINS THREE BYTES:12H 34H, 5FH AND WE EXECUTE THIS FUNCTION
 THEN dsp WILL CONTAIN ASCII BYTES "12345F"
**************************************************************************
void HEX_2_DSP(unsigned char *hex, unsigned char *dsp, int count)
{
    int i;
    unsigned char ch;
    
    for(i = 0; i < count; i++)
    {
        ch = (hex[i] & 0xf0) >> 4;
        dsp[i << 1] = (ch > 9) ? ch + 0x41 - 10 : ch + 0x30;
        ch = hex[i] & 0xf;
        dsp[(i << 1) + 1] = (ch > 9) ? ch + 0x41 - 10 : ch + 0x30;
    }
}

/*将两字节bcd码转换成hex码*/
unsigned int bcd2hex(unsigned char *buf)
{
	unsigned int temp;
	temp=(buf[0]>>4)*1000 + (buf[0]&0x0f)*100 + (buf[1]>>4)*10 + (buf[1]&0x0f);
    return(temp);
}
/***********************************************/
/* 将整形数字转换成两字节bcd码放入 buf*/
void hex2bcd(int hexnum, unsigned char *buf)
{
//	int data th, ha, te, on;

	for(buf[0]=0; hexnum >= 1000; buf[0] += 0x10, hexnum -= 1000);
	for(        ; hexnum >= 100;  buf[0] += 0x01, hexnum -= 100);
	for(buf[1]=0; hexnum >= 10;   buf[1] += 0x10, hexnum -= 10);
	buf[1] += hexnum;

	/*
	th = hexnum / 1000;
	on = hexnum % 1000;

	ha = on / 100;
	on = on % 100;

	te = on / 10;
	on = on % 10;

	buf[0] = th << 4 + ha;
	buf[1] = te << 4 + on;
	*/
}
/**********************************************/	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -