- 论坛徽章:
- 0
|
- #include <stdio.h>;
- #include <string.h>;
- #include <stdlib.h>;
- /*
- * 10进制字符转成16进制字符
- */
- int strDec2Hex(char* sDec,int iDecLen,char* sHex,int iHexLen)
- {
- char sSrc[65];
- char sForamt[6];
- unsigned long ulSrc;
- memset(sSrc,0,sizeof(sSrc));
- memcpy(sSrc,sDec,iDecLen);
- ulSrc = atol(sSrc);
- sprintf(sForamt,"%%0%dX",iHexLen);
- _snprintf(sHex,iHexLen,sForamt,ulSrc);
- return ulSrc;
- }
- /*
- * 2进制字符转成16进制字符
- */
- int strBin2Hex(char* sBin,int iBinLen,char* sHex,int iHexLen)
- {
- char sSrc[65];
- char sForamt[6];
- unsigned long ulSrc;
- memset(sSrc,0,sizeof(sSrc));
- memcpy(sSrc,sBin,iBinLen);
- *(sSrc+0)=='1'?ulSrc=1:ulSrc=0;
- for(int i=1;i<iBinLen;i++)
- *(sSrc+i)=='1'?ulSrc=ulSrc*2+1:ulSrc=ulSrc*2+0;
- sprintf(sForamt,"%%0%dX",iHexLen);
- _snprintf(sHex,iHexLen,sForamt,ulSrc);
- return ulSrc;
- }
- /*
- * 16进制字符转成10进制字符
- */
- int strHex2Dec(char* sHex,int iHexLen,char* sDec,int iDecLen)
- {
- char sSrc[65];
- char sForamt[6];
- unsigned long ulSrc;
- memset(sSrc,0,sizeof(sSrc));
- memcpy(sSrc,sHex,iHexLen);
- strupr(sSrc);
- *(sSrc+0)<'A'?ulSrc=*(sSrc+0)-0x30:ulSrc=*(sSrc+0)-0x41+0x0A;
- for(int i=1;i<iHexLen;i++)
- *(sSrc+i)<'A'?ulSrc=ulSrc*16+*(sSrc+i)-0x30:ulSrc=ulSrc*16+*(sSrc+i)-0x41+0x0A;
- sprintf(sForamt,"%%0%du",iDecLen);
- _snprintf(sDec,iDecLen,sForamt,ulSrc);
- return ulSrc;
- }
- /*
- * 16进制字符转成2进制字符
- */
- int strHex2Bin(char* sHex,int iHexLen,char* sBin,int iBinLen)
- {
- char sSrc[65];
- char sForamt[6];
- unsigned long ulSrc;
- memset(sSrc,0,sizeof(sSrc));
- memcpy(sSrc,sHex,iHexLen);
- *(sSrc+0)<'A'?ulSrc=*(sSrc+0)-0x30:ulSrc=*(sSrc+0)-0x41+0x0A;
- for(int i=1;i<iHexLen;i++)
- *(sSrc+i)<'A'?ulSrc=ulSrc*16+*(sSrc+i)-0x30:ulSrc=ulSrc*16+*(sSrc+i)-0x41+0x0A;
- sprintf(sForamt,"%%0%dd",iBinLen);
- memset(sSrc,0,sizeof(sSrc));
- ultoa(ulSrc,sSrc,2);
- sprintf(sForamt,"%%0%ds",iBinLen);
- _snprintf(sBin,iBinLen,sForamt,sSrc);
- return ulSrc;
- }
- void main()
- {
-
- char strCh[60];
- memset(strCh,0,sizeof(strCh));
- strDec2Hex("244",3,strCh,2);
- //sprintf(strCh,"%X",101);
- printf("10to16:%s\n",strCh);
-
- memset(strCh,0,sizeof(strCh));
- strHex2Dec("0F",2,strCh,3);
- printf("16to10:%s\n",strCh);
-
- //printf("%0|\n",)
- int wi=1,wj=0,wk;
- wk=wi^wj;
- printf("wk:%d\n",wk);
- }
复制代码 |
|